【www.gdgbn.com--系统相关】

/*
 *--------------------------------------------------------------------
 *
 *创建一个XMLHttp实例
 *return object 成功创建返回一个XMLHttp对象实例,否则返回false
 *
 *--------------------------------------------------------------------
 */
 function CreateAjax()
 {
    var XMLHttp;
    try
    {
        XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");   //IE的创建方式
    }
    catch(e)
    {
        try
        {
            XMLHttp = new XMLHttpRequest();     //FF等浏览器的创建方式
        }
        catch(e)
        {
            XMLHttp = false;        //创建失败,返回false
        }
    }
    return XMLHttp;     //返回XMLHttp实例
 }

/*
 *-------------------------------------------------------------------------
 *
 *函数名:Dig(id)
 *功能:投票
 *参数:id
 *      1、id:文章的id
 *
 *-------------------------------------------------------------------------
 */
function Dig(id)
{
 _xmlhttp = CreateAjax();
 var url = "service.asp?id="+id+"&n="+Math.random()+"";  //这里添加了一个参数n,表示为一个随机数,以避免浏览器缓存
 if(_xmlhttp)    //判断XmlHttp是否创建成功
    {
        var content = document.getElementById("dig"+id);     
  var dig = document.getElementById(id);     //获取页面中ID为文章Id的节点
        _xmlhttp.open("GET",url,true);
        _xmlhttp.onreadystatechange=function()
        {
            if(_xmlhttp.readyState == 4)        //客户端完成请求
            {
                if(_xmlhttp.status == 200)      //服务端完成处理并返回数据
                {
                    var ResponseText = unescape(_xmlhttp.responseText);   //获取service的显示字符
     var r=ResponseText.split(",");        //如果已经投票、service会显示Dig,投票数,这里分割字符用于显示错误和重置计数
                    if(r[0] == "Dig" )   //service返回了错误信息
                    {
                        alert("您已经投过票了!");
                        dig.innerHTML=r[1];
                    }
     //没有找到文章
                    else if(ResponseText == "NoData")
     {
      alert("参数错误!"); 
     }
     else
                    {
      //服务器返回了成功,重置投票数
      dig.innerHTML=ResponseText;
      alert("投票成功");
      //将投一票改成查看文章的按钮
      content.innerHTML="查看";
                    }
                }
                else    //服务器出现异常
                {
                    alert("服务器返回异常!");
                    top.location.href="index.asp";
                }
            }
            else    //请求未完成时的提示信息
            {
                dig.innerHTML="";
            }
        }
        _xmlhttp.send(null);  //向服务器发送请求,因为是get请求,会直接附在URL后面,所以这里括号中的数据为null,IE中也可以不写,但FF就必须加上null,否则会发送失败。
    }
    else    //创建未成功
    {
        alert("您的浏览器不支持或未启用 XMLHttp!");
    }
}

上面是xmlhttp实例的数据无刷新处理,下面是asp数据处理并返回数据


<%
Dim id
Dim Rs,Sql
id = Replace(Trim(Request.QueryString("id")),""","")
If Session("id"&id)<>"" Then
 Set Rs = Server.CreateObject("ADODB.Recordset")
 Sql = "Select * From News Where id="&id
 Rs.Open Sql,Conn,3,3
 If Rs.Eof And Rs.Bof Then
  Response.Write("NoData")
 Else
  Response.Write("Dig")
  Response.Write(",")
  Response.Write(Rs("Dig"))
 End If
Else
 Set Rs = Server.CreateObject("ADODB.Recordset")
 Sql = "Select * From News Where id="&id
 Rs.Open Sql,Conn,3,3
 If Rs.Eof And Rs.Bof Then
  Response.Write("NoData")
 Else
  Dim Dig
  Dig =Rs("Dig")
  Dig = Dig + 1
  Rs("Dig") = Dig
  Rs.Update
  Rs.Close
  Set Rs = Nothing
  Session("id"&id) = id
  Response.Write(Dig)
 End If
End If
%>

本文来源:http://www.gdgbn.com/aspjiaocheng/20321/