动态同步加载JS脚本
来源:互联网 发布:天国王朝 演员 知乎 编辑:程序博客网 时间:2024/05/01 07:46
脚本:
- <scripttype="text/javascript">
- (function () {
-
dsLoadingJS = { -
//获取XMLHttpRequest对象(提供客户端同http服务器通讯的协议) -
getXmlHttpRequest: function () { -
if(window.XMLHttpRequest) // 除了IE外的其它浏览器 -
return newXMLHttpRequest(); -
else if(window.ActiveXObject) // IE -
return newActiveXObject("MsXml2.XmlHttp"); -
}, -
//导入内容 -
includeJsText: function (rootObject, jsText){ -
if(rootObject != null) { -
var oScript =document.createElement_x("script"); -
oScript.type ="text/javascript"; -
oScript.text = jsText; -
rootObject.appendChild(oScript); -
} -
}, -
//导入文件 -
includeJsSrc: function (rootObject, fileUrl){ -
if(rootObject != null) { -
var oScript =document.createElement_x("script"); -
oScript.type ="text/javascript"; -
oScript.src = fileUrl; -
rootObject.appendChild(oScript); -
} -
}, -
//同步加载 -
addJs: function (rootObject, url) { -
varoXmlHttp = this.getXmlHttpRequest(); -
oXmlHttp.onreadystatechange = function () //其实当在第二次调用导入js时,因为在浏览器当中存在这个*.js文件了,它就不在访问服务器,也就不在执行这个方法了,这个方法也只有设置成异步时才用到 -
{ -
if (oXmlHttp.readyState == 4)//当执行完成以后(返回了响应)所要执行的 -
{ -
if (oXmlHttp.status == 200 || oXmlHttp.status ==304) //200有读取对应的url文件,404表示不存在这个文件 -
{ -
this.includeJsSrc(rootObject, url); -
} -
else { -
alert('XMLrequest error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status +')'); -
} -
} -
} -
//1.True表示脚本会在 send()方法之后继续执行,而不等待来自服务器的响应,并且在open()方法当中有调用到onreadystatechange()这个方法。通过把该参数设置为"false",可以省去额外的 onreadystatechange代码,它表示服务器返回响应后才执行send()后面的方法. -
//2.同步执行oXmlHttp.send()方法后oXmlHttp.responseText有返回对应的内容,而异步还是为空,只有在oXmlHttp.readyState== 4时才有内容,反正同步的在oXmlHttp.send()后的操作就相当于oXmlHttp.readyState ==4下的操作,它相当于只有了这一种状态. -
oXmlHttp.open('GET', url, false); //url为js文件时,ie会自动生成'<script src="*.js"type="text/javascript"></script>',ff不会 -
oXmlHttp.send(null); -
this.includeJsText(rootObject, oXmlHttp.responseText); -
} -
} - })();
- </script>
调用方法:
- <body>
-
<divid="divID"></div> -
<scripttype="text/javascript"> -
var rootObject =document.getElementByIdx_x("divID"); -
dsLoadingJS.addJs(rootObject,"skin.js"); //dsLoadingJS.addJs(rootObject,"http://www.sina.com.cn/article/skin.js"); -
</script> - </body>
0 0
- 动态同步加载JS脚本
- 动态同步加载JS
- js动态加载脚本
- js动态加载脚本
- 动态加载js脚本
- js动态加载脚本
- 动态加载JS脚本
- 动态加载JS脚本
- js动态加载js 同步
- 如何动态加载JS脚本
- 实现动态加载JS脚本
- 原生动态加载js脚本
- [转载]JS 动态加载脚本
- 动态加载js脚本的方法
- 动态加载JS脚本到HTML
- 使用动态脚本元素加载js
- 动态加载js文件和css脚本
- 高性能JS 动态脚本加载loadScript
- 【转载】gridview修改,添加,删除…
- 【转载】gridview修改,添加,删除…
- 【转载】gridview修改,添加,删除…
- 【转载】动态加载JS脚本的4种方法
- 【转载】JS操作DIV全属性
- 动态同步加载JS脚本
- 全志open-ssh Could not load host key: /etc/ssh/ssh_host_key问题
- asp.net中Repeater分页代码…
- js 获取服务器控件的值
- 【转】JS跳转页面方法
- DateTime
- Oracle数据库中游标,异常的简单应用
- 【转载】Repeater隔行变色,两个方…
- 获取ul下所有li