动网的首页调用是方便,但如果调用过多的话首页加载会很慢,所以考虑使用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文件,内容如下:
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;
}
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();
另:如果你需要每隔一段时间更新一个首页可以在末尾添加上这一句
setInterval(
"
NewsShow()
"
,
60000
);
6、将
<
script
type
="text/javascript"
src
="js/ajax_get.js"
></
script
>
标签添加到首页</body>标签的前面
这样优化就弄好了,优化成果请参考:http://www.redguan.com/
本文介绍了一种使用AJAX异步调用优化动网首页加载速度的方法。通过修改Dv_News.asp文件、创建ajax.js及ajax_get.js文件,并调整首页调用方式,显著提升了首页的加载效率。

被折叠的 条评论
为什么被折叠?



