Possiamo caricare jQuery in modo asincrono con relativa semplicità.
La soluzione è la seguente:
function loadScript(src,callback) {
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
if(typeof(callback) == 'function') {
script.onload = function() {
if ( ! script.onloadDone ) {
script.onloadDone = true;
callback.apply(this);
}
};
script.onreadystatechange = function() {
if ( ( "loaded" === script.readyState || "complete" === script.readyState ) && ! script.onloadDone ) {
script.onloadDone = true;
callback.apply(this);
}
};
}
script.src= src;
head.appendChild(script);
}
if(!window.jQuery) {
loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js',init);
} else {
init();
}
function init() {
$(function() {
alert( "jQuery loaded!" );
});
}