四种常用的javascript动态加载方法实现代码总结

首页 > 趣事百科2023-03-27
导读:四种常用的javascript动态加载方法实现代码总结?下面为大家带来介绍。

问:四种常用的javascript动态加载方法实现代码总结

答:有时候我们需要动态的加入适合的js,因为有时候不需要将所有的js都加载进来,以来提高效率,下面是4种比较常用的方法1、直接document。write<script language="javascript"> document。write("<script src='test。js'><\/script>"); </script>2、动态改变已有script的src属性<script src='' id="s1"></script> <script language="javascript"> s1。src="test。js" </script>3、动态创建script元素<script> var oHead = document。getElementsByTagName('HEAD')。item(0); var oScript= document。createElement("script"); oScript。type = "text/javascript" oScript。src="test。js" oHead。appendChild( oScript); </script>这三种方法都是异步执行的4、原理:用XMLHTTP取得要脚本的内容,再创建 Script 对象。注意:a。js必须用UTF8编码保存,要不会出错。因为服务器与XML使用UTF8编码传送数据。主页面代码:<script language="JavaScript"> function GetHttpRequest() { if ( window。XMLHttpRequest ) // Gecko return new XMLHttpRequest() ; else if ( window。ActiveXObject ) // IE return new ActiveXObject("MsXml2。XmlHttp") ; } function AjaxPage(sId, url){ var oXmlHttp = GetHttpRequest() ; oXmlHttp。OnReadyStateChange = function() { if ( oXmlHttp。readyState == 4 ) { if ( oXmlHttp。status == 200 || oXmlHttp。status == 304 ) { IncludeJS( sId, url, oXmlHttp。responseText ); } else { alert( 'XML request error: ' + oXmlHttp。statusText + ' (' + oXmlHttp。status + ')' ) ; } } } oXmlHttp。open('GET' url, true); oXmlHttp。send(null); } function IncludeJS(sId, fileUrl, source) { if ( ( source != null ) && ( !document。getElementById( sId ) ) ){ var oHead = document。getElementsByTagName('HEAD')。item(0); var oScript = document。createElement( "script" ); oScript。language = "javascript" oScript。type = "text/javascript" oScript。id = sId; oScript。defer = true; oScript。text = source; oHead。appendChild( oScript ); } } AjaxPage( "scrA" "b。js" ); alert( "主页面动态加载JS脚本。"); alert( "主页面动态加载a。js并取其中的变量:" + str ); </script>现在完成了一个JS脚本的动态加载。var Rash=true; var msg="" function norash() { if (confirm("确定要取消吗")) Rash=false; } function rashit() { setInterval('getrss()'Inttime); } function getrss() { if (Rash==true) { head=document。getElementsByTagName('head')。item(0); script=document。createElement('script'); script。src='INCLUDE/AutoUpdate。asp' script。type='text/javascript' script。defer=true; void(head。appendChild(script)); window。status=msg; } } rashit();。

上一篇

热门阅读