快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

bootstrap处理缓存问题的方法-创新互联

小编给大家分享一下bootstrap处理缓存问题的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

目前创新互联已为上千多家的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、杂多网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

bootstrap处理缓存问题的方法:首先在关闭的时候清除数据;然后修改请求的URL,并在请求的URL上加上时间戳,语句如“function remoteUrl(u){...}”。

百度了一下,有很多类似的情况,解决办法基本都是如下两种:

1、在关闭的时候清除数据:

$("#myModal").on("hidden.bs.modal", function () {
$(this).removeData("bs.modal");
});

2、修改请求的URL,在请求的URL上加上时间戳。

function remoteUrl(u){
u += '&t=' + Math.random(1000)
    $.get(u, '', function(data){
        $('#remoteModal .modal-body').html(data)
    })
    $('#remoteModal').modal({show:true,backdrop:false})
}

上边的两个解决办法确实有效,但在IE中,第1种方法无效,第2种方法解决起来太繁琐。

我又百度到了另一种解决办法,专门针对IE的:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]//不加的话,IE缓存会捣乱

该办法是要在服务器端给每个action加上,这样的话,这需要加多少action,那位作者居然嫌弃IE太垃圾了应该退出互联网界。

好了,吐糟完了,来上我的解决办法:直接修改bootstrap.js文件

位置在大约在1068行的位置,如下代码:

  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
    var $this   = $(this)
    var href    = $this.attr('href')
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
    var remoteUrl = !/#/.test(href) && href
    if (remoteUrl == undefined) {
        remoteUrl = "";
    }
    if (remoteUrl.indexOf("?") > -1) {
        remoteUrl += "&" + (new Date()).valueOf()
    }
    else {
        remoteUrl += "?" + (new Date()).valueOf()
    }
    //var option  = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
    //上边的是原代码,增加了remoteUrl来解决IE下缓存的问题
    var option = $target.data('modal') ? 'toggle' : $.extend({ remote: remoteUrl }, $target.data(), $this.data())
 
    e.preventDefault()
 
    $target
      .modal(option, this)
      .one('hide', function () {
        $this.is(':visible') && $this.focus()
      })
  })

注释已经说明了解决办法,我只是增加了remoteUrl,在请求的url后加上时间,这样就不用一个一个的修改,也能兼顾各个浏览器了。

以上是“bootstrap处理缓存问题的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前文章:bootstrap处理缓存问题的方法-创新互联
标题来源:http://6mz.cn/article/ddojdi.html

其他资讯