动网的首页调用是方便,但如果调用过多的话首页加载会很慢,所以考虑使用AJAX异步调用来优化下
我的详细做法如下:
1、找到Dv_News.asp中的
Sub OutPut(Strings)
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
并另存为Dv_News1.asp
2、创建一个ajax.js文件,内容如下:
[code: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;
}
[/code]
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文件内容如下:
[code: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();
[/code]
另:如果你需要每隔一段时间更新一个首页可以在末尾添加上这一句
setInterval("NewsShow()",60000);
6、将
<script type="text/javascript" src="js/ajax_get.js"></script>
标签添加到首页</body>标签的前面
这样优化就弄好了,优化成果请参考:http://www.redguan.com/
相关讨论请移步到:http://bbs.lishewen.com.cn/showforum-14.aspx