Erkennen, wenn das script bereits geladen ist oder nicht

Scheint es, dass helloworld.js geladen wird mehrfach basierend auf der Anzahl der Male, die ich auf #load. Ich sage dies, weil wenn ich einen Blick in die Google Chrome Entwicklertools Registerkarte "Netzwerk", es zeigt helloworld.js so oft wie ich auf #load.

$(document).ready(function() {

    $("#load").click(function(){
        $.getScript('helloworld.js', function() {
            hello();
        });
    });

});

Den hello() Funktion sieht wie folgt aus:

function hello(){
    alert("hello");
}

Ist es möglich, zu erkennen, wenn helloworld.js wurde bereits geladen?

Also, wenn es noch nicht geladen, laden Sie es, und wenn es geladen hat, nicht laden.

Dies ist, was Entwickler-Tools derzeit zeigt mir wenn ich auf die #load Taste 4 mal:

Erkennen, wenn das script bereits geladen ist oder nicht

  • Sie können auch lassen Sie es verwenden, cache: $.ajaxSetup({ cache: true }); (entnommen aus hier).
  • Die Aufrufe zwischengespeichert werden sollte, bereits durch den browser...
  • dies scheint zu funktionieren, vielen Dank. Es sollte eine Antwort.
  • standardmäßig jQuery hinzufügen eindeutigen Zeitstempel zu jedem AJAX-Aufruf, so dass es nicht zwischengespeichert werden. Durch das setzen der Eigenschaft auf false, es wird nicht fügen Sie einen beliebigen eindeutigen Wert.
  • cheers, fertig.
  • $.getScript ist die Ausnahme, es wird standardmäßig auf cache:false es sei denn, speziell in ajaxSetup. (gemäß der Dokumentation)

InformationsquelleAutor oshirowanen | 2012-11-14
Schreibe einen Kommentar