JavaScript异步加载的两种方法

//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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值