作家
登录

script的async属性以非阻塞的模式加载脚本

作者: 来源:www.28hudong.com 2013-03-30 00:13:04 阅读 我要评论

1.HTML5实现了script的async属性,这个新的属性可以让js在浏览器中以非阻塞的模式加载,另外script还有一个defer属性,这个属性目前所有浏览器都已实现(除了firefox和chrome的早期版本),IE这方面做得好,从一开始就支持些属性。 复制代码 代码如下: //async <script async src="dquery.js" async></script> //defer <script async src="dquery.js" defer> </script> 2.async和defer的区别: 带有async或者defer的script都会立刻下载并不阻塞页面解析,而且都提供一个可选的onload事件处理, 在script下载完成后调用,用于做一些和此script相关的初始化工作。它的不同之处在于async一旦下载完成就立即执行(在window.onload事件之前),不确保执行的顺序,而defer能确保js是在按照其在页面中的顺序执行(在DOMContentLoaded事件之前)。 3.为了解决浏览器兼容问题可以使用下面的代码进行处理 复制代码 代码如下: function lazyload() { var elem = document.createElement("script"); elem.type = "text/javascript"; elem.async = true; elem.src = "js/dquery.js?v=11"; //对应的JS文件 document.body.appendChild(elem); } if (window.addEventListener) { window.addEventListener("load", lazyload, false); } else if (window.attachEvent) { window.attachEvent("onload", lazyload); } else { window.onload = lazyload;} 由于是异步加载所以使用相应js内容就需要在window.onload事件中使用,直接写在页面中会报脚本错误,如:

  推荐阅读

  js去除重复字符串两种实现方法

方法一:复制代码 代码如下:function checkRe(checkid) { var id = window.parent.getQry("ctrid") + "_"; var values = window.parent.opener.document.getElementById(id + "txt_dept_name").value; var keys = >>>详细阅读


本文标题:script的async属性以非阻塞的模式加载脚本

地址:http://www.17bianji.com/kaifa2/JS/22522.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)