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

本文介绍如何动态插入和异步加载JavaScript,包括使用`document.write`、修改script src、动态创建script元素以及通过AJAX获取并执行脚本。重点讲解了通过XMLHttpRequest实现的异步加载,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们需要动态的加入适合的js,因为有时候不需要将所有的js都加载进来,以来提高效率,下面是4种比较常用的方法

1、直接document.write

document.write("

2、动态改变已有script的src属性

s1.src="test.js"

3、动态创建script元素

var oHead = document.getElementsByTagName('HEAD').item(0);

var oScript= document.createElement("script");

oScript.type = "text/javascript";

oScript.src="test.js";

oHead.appendChild( oScript);

这三种方法都是异步执行的

4、原理:用XMLHTTP取得要脚本的内容,再创建 Script 对象。

注意:a.js必须用UTF8编码保存,要不会出错。因为服务器与XML使用UTF8编码传送数据。

主页面代码:

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 );

现在完成了一个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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值