枯燥的异步加载js

defer
只有IE能用,等到dom文档全部解析完才会被执行。

<script type="text/javascript" src="xxxx.js" defer="defer"></script>

async
与defer无异,但加载完立刻执行。

<script type="text/javascript" src="xxxx.js" async="async"></script>
<script>
    function loadScript(url,callback){
    
    
        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(){
    
    
                callback();
            }
        }
        script.src = url;
        document.head.appendChild(script);
    }
    loadScript('xxx.js',function(){
    
    
        xxx();
    })
</script>

猜你喜欢

转载自blog.csdn.net/weixin_51664705/article/details/114294606