=================================================================
TEST.ASP文件:
=================================================================
<script language="javascript" src="js/ajax.js"></script>
<script language="vbscript" src="js/convert.vbs"></script><div align="left" id="listtopad"></div>
<script language="javascript">
document.all.listtopad.innerHTML="<div style='border:1px solid #cccccc;width:200'> <img src='images/loading.gif' align='absmiddle'> 正在载入...</div>"
send_request("showad.asp",'listtopad')
</script>=================================================================
ajax.js文件
=================================================================
var http_request = false;
function send_request(url,obj){//初始化、指定处理函数、发送请求的函数
var obj=obj;
http_request = false; //开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType("text/html");//设定以gb2312编码识别数据
}
}else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange =function(){
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
gb2utf8_data =http_request.responseBody;
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
document.getElementById(obj).innerHTML=bytes2BSTR(http_request.responseBody);
//alert(bytes2BSTR(http_request.responseBody));
} else{ //页面不正常
document.getElementById("listtopad").innerHTML="发生错误!访问超时!"
}
}
}
http_request.open("POST",url, true);
http_request.send(null);
} // 处理返回信息的函数
=================================================================
convert.vbs文件
=================================================================
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function =======================================================
showad.asp文件
=======================================================
<script language="javascript">
document.write("test");
</script>
<script language="javascript">
document.write("test2");
</script>====================================================================================
假设showad.asp中处理的是一个要运行时间较长的一个脚本如(5秒)。
我想通过AJAX技术。在后台异步执行这个脚本。而不影响页面内容的显示,在脚本运行时,上面显示一个动态的LOADING动画。
不知怎样实现才好!
请大家帮忙看看
TEST.ASP文件:
=================================================================
<script language="javascript" src="js/ajax.js"></script>
<script language="vbscript" src="js/convert.vbs"></script><div align="left" id="listtopad"></div>
<script language="javascript">
document.all.listtopad.innerHTML="<div style='border:1px solid #cccccc;width:200'> <img src='images/loading.gif' align='absmiddle'> 正在载入...</div>"
send_request("showad.asp",'listtopad')
</script>=================================================================
ajax.js文件
=================================================================
var http_request = false;
function send_request(url,obj){//初始化、指定处理函数、发送请求的函数
var obj=obj;
http_request = false; //开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType("text/html");//设定以gb2312编码识别数据
}
}else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange =function(){
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
gb2utf8_data =http_request.responseBody;
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
document.getElementById(obj).innerHTML=bytes2BSTR(http_request.responseBody);
//alert(bytes2BSTR(http_request.responseBody));
} else{ //页面不正常
document.getElementById("listtopad").innerHTML="发生错误!访问超时!"
}
}
}
http_request.open("POST",url, true);
http_request.send(null);
} // 处理返回信息的函数
=================================================================
convert.vbs文件
=================================================================
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function =======================================================
showad.asp文件
=======================================================
<script language="javascript">
document.write("test");
</script>
<script language="javascript">
document.write("test2");
</script>====================================================================================
假设showad.asp中处理的是一个要运行时间较长的一个脚本如(5秒)。
我想通过AJAX技术。在后台异步执行这个脚本。而不影响页面内容的显示,在脚本运行时,上面显示一个动态的LOADING动画。
不知怎样实现才好!
请大家帮忙看看
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货