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文件才能响应菜单折叠的事件。
posted @ 2017-10-05 21:32  imustsun  阅读(311)  评论(0编辑  收藏  举报