Heim  >  Artikel  >  Web-Frontend  >  Wie Bootstrap mit Caching-Problemen umgeht

Wie Bootstrap mit Caching-Problemen umgeht

藏色散人
藏色散人Original
2020-12-07 09:12:542941Durchsuche

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){...}“.

Wie Bootstrap mit Caching-Problemen umgeht

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Bootstrap-Clear-FloatNächster Artikel:Bootstrap-Clear-Float