码迷,mamicode.com
首页 > Web开发 > 详细

JS的同步加载、异步加载

时间:2017-10-05 22:01:55      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:下一步   async   处理   事件   就会   执行   必须   标签   完成   

在使用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的同步加载、异步加载

标签:下一步   async   处理   事件   就会   执行   必须   标签   完成   

原文地址:http://www.cnblogs.com/imustun/p/7630054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!