So geht Bootstrap mit Caching-Problemen um: 1. Löschen Sie die Daten beim Schließen. 2. Ändern Sie die angeforderte URL und fügen Sie einen Zeitstempel zur angeforderten URL hinzu, mit Anweisungen wie „function remoteUrl(u){...}“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Bootsrap-Version 3.3.7, Dell G3-Computer.
Baidu, es gibt viele ähnliche Situationen, die Lösungen sind im Wesentlichen die folgenden zwei:
1 Löschen Sie die Daten beim Schließen:
$("#myModal").on("hidden.bs.modal", function () { $(this).removeData("bs.modal"); });
2. Ändern Sie die angeforderte URL und fügen Sie Zeit zum angeforderten URL-Stempel hinzu.
function remoteUrl(u){ u += '&t=' + Math.random(1000) $.get(u, '', function(data){ $('#remoteModal .modal-body').html(data) }) $('#remoteModal').modal({show:true,backdrop:false}) }
Die beiden oben genannten Lösungen sind zwar effektiv, aber im IE ist die erste Methode ungültig und die zweite Methode zu umständlich zu lösen.
Ich habe auf Baidu eine andere Lösung speziell für den IE gefunden:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]//不加的话,IE缓存会捣乱
Diese Methode besteht darin, jede Aktion auf der Serverseite hinzuzufügen. Wie viele Aktionen müssen in diesem Fall tatsächlich hinzugefügt werden? Das sollte der Autor nicht Verlassen Sie die Internetwelt, wenn Sie ein Idiot sind.
Okay, ich bin fertig mit dem Erbrechen, hier ist meine Lösung: Ändern Sie direkt die Datei „bootstrap.js“
Der Speicherort befindet sich etwa in Zeile 1068, wie folgt:
$(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() }) })
Der Kommentar hat die Lösung erklärt, ich habe sie einfach „remoteUrl“ hinzugefügt die Zeit nach der angeforderten URL, sodass Sie diese nicht einzeln ändern müssen und jeden Browser berücksichtigen können.
Empfohlen: „Bootstrap-Video-Tutorial“ „CSS-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWie Bootstrap mit Caching-Problemen umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!