您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么處理bootstrap的緩存問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
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的緩存問題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。