在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析。这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内容的正常解析,由此,便可以提高页面首次加载的速度。
那么,既然js是异步加载,我们又该如何判断它是否加载完成呢?
总结办法如下
function loadScript(jsfile,callback){ var head= document.getElementsByTagName('head')[0]; var script= document.createElement('script'); script.type= 'text/javascript'; script.src= jsfile; head.appendChild(script); script.onload = script.onreadystatechange = function() { if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) { script.onload = script.onreadystatechange = null; if(callback&&typeof(callback)== 'function'){ callback();//window[callback]();如果传递字符串过来 调用window['函数名']() 调用方法 } } }; }