用AJAX优化DVBBS 8.0首页调用

动网的首页调用是方便,但如果调用过多的话首页加载会很慢,所以考虑使用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