$.getScript("somescript.js", function() {
alert('Load Complete');
});
Thanks in advance for your help.
1) jQuery requests for scripts via AJAX are never cached unless you specify that as an option in the $.ajax() function. From the documentation:
"cache, Boolean
Default: true, false for dataType 'script' and 'jsonp'
If set to false it will force the pages that you request to not be cached by the browser."
2) I think I need to see sample code to grasp this part of the question.
3) You can't do anything if $.getScript() fails. But, you should be aware that $.getScript() is just a short-hand version of $.ajax(), equivilant to:
$.ajax({
url: url,
dataType: 'script',
success: function(data) {
//
}
});
This means that you can implement the error
callback, to do something clever if the file fails to load, ie:
$.ajax({
url: url,
dataType: 'script',
success: function(data) {
//
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("panic");
}
});
In addition to Glen's answer I would like to offer another option:
$.getScript({
url: "foo.js",
cache: true // or false, depending on your preference. in most cases you would want it true.
}).done(function(){
// do something when script was loaded and run
}).fail(function(){
// do something when script failed to load
});
Supported on jQuery 1.12.0+
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With