Search code examples
javascriptjquerygoogle-chromeinternet-explorer-8getscript

Detect if script has already loaded or not


It seems that helloworld.js gets loaded multiple times based on the number of times I click #load. I say this because when I look at Google Chromes Developer Tools Network tab, it shows helloworld.js as many times as I click #load.

$(document).ready(function() {

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

});

The hello() function looks like this:

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

Is it possible to detect if helloworld.js has already loaded?

So if it hasn't loaded, load it, and if it has loaded, don't load it.

This is what Developer Tools currently shows me if I click the #load button 4 times:

enter image description here


Solution

  • Another option is letting .getScript() run but let it take the script from browser's cache so you won't have it reloaded each and every time.

    To achieve this, add such code:

    $.ajaxSetup({
        cache: true
    });
    

    This is taken from the documentation page.