//javaScript 解决兼容性问题的异步加载
//第一种方法,不是最好的方法
function loadScript(){
var script = document.createElement('script');
script.type = "text/javaScript";
if(script.readyState){//IE
script.onreadystatechange = function(){
if(script.readyState == "complete" || script.readyState == "loaded"){
callback();
}
}
}else{
script.onload = function(){//safari chrome firefox opera
callback();
}
}
script.src = url;//下载
document.head.appendChild(script);
// 调用:
// loadScript('demo.js',test)// test :demo中的方法。执行失败,这时候test方法还没下载进来
// 正确调用:
// loadScript('demo.js',function(){
// test();
// });
}
//第二种方法,将具体用到的方法用字符串表示
// 首先这种方法是要求将函数库写成json的方式。
// 如:demo.js
var tools = {
test : function(){
console.log('a');
}
test1 : function(){
}
}
function loadScript(){
var script = document.createElement('script');
script.type = "text/javaScript";
if(script.readyState){//IE
script.onreadystatechange = function(){
if(script.readyState == "complete" || script.readyState == "loaded"){
tools[callback]();//直接这样调用
}
}
}else{
script.onload = function(){//safari chrome firefox opera
tools[callback]();
}
}
script.src = url;//下载
document.head.appendChild(script);
// 调用:
// loadScript('demo.js',"test");
}
</script>
JavaScript异步加载的两种方法
最新推荐文章于 2022-01-15 08:13:20 发布