Let's imagine a web page page needing to load a javascript file (i.e. my.js
). Is it possible to organize the following fail-over loading sequence?
my.js
from server A.my.js
from server B.my.js
from server C.If yes, how to proceed? Thanks.
P.S.: I have just found yepnopejs. Does anyone recommend it?
I have seen this technique to allow a fallback if a CDN is down. If your js file has some testable property like a global variable (I've called it marker), you can attempt to load the file from server A, test for the marker and if it is not found script another attempt.
<script type="text/javascript" src="http://server_A.tld/my.js"></script>
<script type="text/javascript">
if( !window.marker ) {
document.write(
'<script type="text\/javascript" src="http:\/\/server_B.tld\/my.js"><\/script>'
);
}
</script>
Update There is no danger that all the scripts will run using this technique. John Resig explains this in a blog post.. Scripts can download in parallel and in any order but they must execute in order.