概述
在正常的加载过程中,js的加载都是同步的,也就是说在加载过程中,浏览器会阻塞接下来的内容的加载。这时候我们就要用到动态加载,动态加载是异步的,如果我们在后边要用到这个动态加载的js文件里的东西,就要保证这个文件加载完成后,再执行下面的内容。
我们使用document的readyState属性:document.readyState
readyState 属性返回当前文档的状态。
该属性返回以下值:
- uninitialized - 还未开始载入
- loading - 载入中
- interactive - 已加载,文档与用户可以开始交互
- complete - 载入完成 (loaded)
原生JS:
function loadScript(url,callback){
var script=document.createElement('script');
script.type='text/javascript';
script.async='async';
script.src=url;
document.body.appendChild(script);
if(script.readyState){
//IE
script.onreadystatechange=function(){
if(script.readyState=='complete'||script.readyState=='loaded'){
script.onreadystatechange=null;
callback();
}
}
}else{
//非IE
script.onload=function(){callback();}
}
}
JQuery: 使用 $.holdReady(true); $.getScript(); $.holdReady(false) 3个函数实现。
$.holdReady(true);
//hold住,等待a.js加载,后续代码不能执行
$.getScript('a.js',function(){
$.holdReady(false);
//释放,a.js加载完成,继续执行后续代码
});
最后
以上就是愤怒大树为你收集整理的怎么判断一个JS文件加载完成?的全部内容,希望文章能够帮你解决怎么判断一个JS文件加载完成?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复