JS的同步加载异步加载

Posted imustsun

tags:

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

在使用js展开式菜单时,发现只有加载完页面包含的js文件时,展开菜单才能折叠起来。

查找了一下原因:是因为js页面加载使用的是同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作。所以默认同步执行才是安全的。但这样如果js中有输出document内容、修改dom、重定向等行为,就会造成页面堵塞。所以一般建议把<script>标签放在<body>结尾处,这样尽可能减少页面阻塞。

(function(){
    var scriptEle = document.createElement("script");
    scriptEle.type = "text/javasctipt";
    scriptEle.async = true;
    scriptEle.src = "http://localhost/jquery.min.js";
    var x = document.getElementsByTagName("head")[0];
    x.insertBefore(scriptEle, x.firstChild);		
 })();
应用该方法,便可以很好的避免页面必须加载完所有js文件才能响应菜单折叠的事件。

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

JS的同步加载异步加载

介绍同步加载异步加载延迟加载

同步加载和异步加载的原生态实现

同步加载异步加载延迟加载

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

ajax同步异步问题