加载异步脚本的艺术

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加载异步脚本的艺术相关的知识,希望对你有一定的参考价值。

由于javascript脚本的加载会阻塞页面上其他元素的载入,以异步非阻塞的方式加载脚本文件对网页性能而言就显得尤为重要,甚至可以说很关键。
Facebook JavaScript SDK配置示例如下:

<script>(function(d,s,id){
    var js,fjs = d.getElementByTagName(s)[0];
    if(d.getElementById(id)) return;
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
    fjs.parentNode.insertBefore(js,fjs);
}(document,‘script‘,‘facebook-jssdk‘));</script>

这是一个自执行函数,确保了所有临时变量都处于局部作用于内,而不会污染到全局的命名空间。
如果你拥有宿主页面的控制权,一切将变的更加简单:

<script>(function(d){
    var js = d.createElement(‘script‘);
    js.src = "http://example.com/my.js";
    (d.head || d.getElementByTagName(‘head‘)[0]).appendChild(js);
}(document));</script>

以异步非阻塞方式加载脚本对网页的性能有很大的帮助。

以上是关于加载异步脚本的艺术的主要内容,如果未能解决你的问题,请参考以下文章

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?

javascript脚本如何异步加载,有啥作用

当活动中的异步任务完成时如何在片段中重新加载ui?

如何延迟或异步此 WordPress javascript 片段以最后加载以加快页面加载时间?

异步任务片段背景数据

整合异步脚本