几种提高javascript载入速度的方式

几种提高javascript载入速度的方式(异步非阻塞的)


0. 直接document.write


<script language="javascript">
document.write("<script src='test.js'><\/script>");
</script>


1. 动态创建script元素


原理:动态生成一个script的DOM元素,并设置它的src和type属性,之后附加到document.body的后面,这种方式是我们很常 用的,值得庆幸的是,它也不会阻塞后面资源的加载。HTTP瀑布图效果图如下(还可以通过firebug来查看):


var script = document.createElement("script");
script.type = "text/javascript";
script.src = "event.js";
document.getElementsByTagName("head")[0].appendChild(script);


2. 用XMLHttpRequest取得要脚本的内容,再创建Script对象


原理:这个跟XML Eval的方式差不多。也是通过XMLHttpRequest的方式来加载外部的Javascript文件,不过之后是动态生成一个script标签,并 设置script标签的text属性为XHR返回的Javascript代码,这种方式也没有阻塞后面的资源的下载。HTTP瀑布图效果图如下(还可以通 过firebug来查看):


var createXHR = function(){
var xhr = false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xhr;
}
var xhr = createXHR();
xhr.open("GET", "event.js", true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 || xhr.status === 200) {
var script = document.createElement("script");
document.getElementsByTagName("head")[0].appendChild(script);
script.text = xhr.responseText;
}
}
xhr.send(null);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值