rush:js;">
var Now = function() { return +(new Date()); }
var t_s = Now();
while(Now() - t_s < 2000) { }
rush:PHP;">
1. 一般script标签加载
rush:xhtml;">
在浏览器加载情况: 图1-1. 下载阻塞Domready 图1-2. 执行阻塞Domready
图1-1. 下载阻塞Domready 图1-2. 执行阻塞Domready2. async属性
async是html5中新增的属性,它的作用是能够异步下载脚本文件,不阻塞Domready。
每一个async属性的脚本都在它下载结束之后立刻执行,同时会在window的load事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况
支持async浏览器: Firefox 3.6+,IE 10+,Chrome 2+,Safari 5+,iOS 5+,Android 3+
rush:xhtml;">
在浏览器中加载的情况:
图2-1 异步下载 不阻塞Domready 阻塞load事件 图2-2 执行阻塞load事件 图2-3 IE9不支持async属性下载阻塞Domready3. DOM Script动态加载
文档对象模型(DOM)允许您使用 JavaScript 动态创建 HTML 的几乎全部文档内容。 script元素与页面其他元素一样,可以非常容易地通过标准 DOM 函数创建:
rush:js;">
var loadScript = function(url) {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = 'true';
s.src = url;
document.getElementsByTagName('head')[0].appendChild(s);
}
// 加载js文件脚本
loadScript('sleep.PHP');
loadScript('demo.js');
在浏览器中加载的情况:
图3-1 下载阻塞load事件 图3-2 执行阻塞load事件 图3-3 IE9不阻塞load事件小结
async和script动态加载在现代浏览器中加载的情况是一致的。前者使用简单,后在兼容性方面更好。 异步加载文件还有很多方法,ajax(会受到同源限制)、iFrame、img…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。