标签:
1.动态加载脚本
<script type="text/javascript">
function loadScript(url){
var script=document.createElement("script");
script.type="text/javascript";
script.src=url;
document.body.appendChild(script);
}
loadScript("js/side-panel.js");
2.XHR Injection 使用动态创建script元素,来写入脚本,在某些情况下可能比上一种方法要快些。
/*var xhrObj = new XMLHttpRequest();
xhrObj.onreadystatechange = function(){
if(xhrObj.readyState == 4&&xhrObj.status==200){
var scriptElem = document.createElement("script");
document.getElementsByTagName("head")[0].appendChild(scriptElem);
scriptElem.text = xhrObj.responseText;
}
};
xhrObj.open("GET", "js/pop.js", true);
xhrObj.send("");
3.XHR Eval
顾名思义,通过XHR读取脚本,通过Eval令脚本生效。
var xhrObj = getxhr();
xhrObj.onreadystatechange = function(){
if(xhrObj.readyState == 4 && xhrObj.status==200){
eval(xhrObj.responseText);
}
};
function getxhr(){
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}
else{
xhr=new ActiveXObject("Microsoft.XMLHttp")
}
return xhr;
}
xhrObj.open("GET", "js/pop.js", true);
xhrObj.send("");
4.Script Defer
原生方案。利用defer属性来防止脚本阻塞。
代码如下:
1 |
<script defer src="A.js"></script> |
defer是最简单的方法,现在主流的浏览器已经支持
标签:
原文地址:http://www.cnblogs.com/12606huchao/p/5201851.html