动网的首页调用是方便,但如果调用过多的话首页加载会很慢,所以考虑使用AJAX异步调用来优化下
我的详细做法如下:
1、找到Dv_News.asp中的
Sub
OutPut(Strings)
Response.Write " document.write(' "
Response.Write Strings
Response.Write " '); "
Response.Write vbNewline
End Sub
Response.Write " document.write(' "
Response.Write Strings
Response.Write " '); "
Response.Write vbNewline
End Sub
将它改为
Sub
OutPut(Strings)
Response.Charset = " gb2312 "
Response.Write Strings
End Sub
Response.Charset = " gb2312 "
Response.Write Strings
End Sub
并另存为Dv_News1.asp
2、创建一个ajax.js文件,内容如下:
var
spinner
=
"
<img src='/images/spinner.gif' alt='正在加载' />
"
;
// /
// / Return a XMLHTTPRequest in a browser independent fashion.
// /
function GetXMLHttp()
... {
var xmlhttp=false;
try
...{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
...{
try
...{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
...{
xmlhttp = false;
}
}
// Mozilla then?
if (!xmlhttp && typeof XMLHttpRequest!='undefined') ...{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// /
// / Return a XMLHTTPRequest in a browser independent fashion.
// /
function GetXMLHttp()
... {
var xmlhttp=false;
try
...{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
...{
try
...{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
...{
xmlhttp = false;
}
}
// Mozilla then?
if (!xmlhttp && typeof XMLHttpRequest!='undefined') ...{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
3、将
<
script
type
="text/javascript"
src
="js/ajax.js"
></
script
>
标签添加到首页<head></head>处
4、将原来的首页调用
<
script
src
="Dv_News.asp?GetName=defnewpic"
></
script
>
替换为
<
div
id
="indexs_defnewpic"
></
div
>
(注意它们的ID)
5、创建ajax_get.js文件内容如下:
function
getSEIndex(se)
... {
var xmlhttp = GetXMLHttp();
var div = document.getElementById("indexs_" + se);
div.innerHTML = spinner + "正在加载信息...";
xmlhttp.open("GET", "/Dv_News1.asp?GetName=" + se, true);
xmlhttp.onreadystatechange=function()
...{
if (xmlhttp.readyState==4)
...{
div.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null)
}
function NewsShow()
... {
getSEIndex('defnewpic');
//按需要继续添加
}
NewsShow();
... {
var xmlhttp = GetXMLHttp();
var div = document.getElementById("indexs_" + se);
div.innerHTML = spinner + "正在加载信息...";
xmlhttp.open("GET", "/Dv_News1.asp?GetName=" + se, true);
xmlhttp.onreadystatechange=function()
...{
if (xmlhttp.readyState==4)
...{
div.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null)
}
function NewsShow()
... {
getSEIndex('defnewpic');
//按需要继续添加
}
NewsShow();
另:如果你需要每隔一段时间更新一个首页可以在末尾添加上这一句
setInterval(
"
NewsShow()
"
,
60000
);
6、将
<
script
type
="text/javascript"
src
="js/ajax_get.js"
></
script
>
标签添加到首页</body>标签的前面
这样优化就弄好了,优化成果请参考:http://www.redguan.com/