青海网站建设、网络推广最好的公司--您身边的网站建设专家,马上拿起电话,联系我们:0971-8235355   
青海西宁网站建设、网站制作公司-西宁威势电子信息服务有限公司 首页 |  公司简介 |  网站建设 |  网络推广 |  空间租用 |  域名注册 |  企业邮局 |  网络安全 |  网站编程 |  客服中心 |  联系我们 |  人才招聘
 
西宁威势最新网站制做案例展示
Lastest Project
 
西宁网站建设  
当前位置为:首页 >> AJAX >> 正文  
AJAX简单的例子(对服务器定时刷新页面)

文章来源: 西宁威势电子信息服务有限公司     发布时间:2008-11-17    浏览次数:8200    tags:AJAX 定时刷新

(1)客户端

<HTML>
<HEAD>
<Title>Ajax</Title>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<META name="Generator" content="Asp Studio 1.0">
<script  language="javascript">
    var xmlHttp;
    //创建XMLHTTPRequest对象
    function createXMLHttpRequest()
    {
      var xp;
      try{
          if(window.ActiveXObject)
          {
             xp=new ActiveXObject("Microsoft.XMLHTTP");
          }
          else
          {
              xp=new XMLHTTPRequest();
          }
      }
      catch(e)
      {
          alert("err!");
      }
      return xp;
    }
    //启动发送请求
    function doStart()
    {
      xmlHttp=createXMLHttpRequest();
      var url="server/doPost.asp?type=start";
      xmlHttp.open("GET",url,true);
      xmlHttp.onreadystatechange=startCallback;
      xmlHttp.send(null);
    }
    //startCallback方法
    function startCallback()
    {
      if(xmlHttp.readyState==4)
      {
          if(xmlHttp.status==200)
          {
             setTimeout("pollServer()",5000);
               refreshTime();
          }
      }
    }
    
    //pollServer()方法
    function pollServer()
    {
       xmlHttp=createXMLHttpRequest();
       var url="server/doPost.asp?type=chance";
       xmlHttp.open("GET",url,true);
       xmlHttp.onreadystatechange=pollCallback;
       xmlHttp.send(null);    
    }
    //pollCallback方法
    function pollCallback()
    {
      
      if(xmlHttp.readyState==4)
      {
        if(xmlHttp.status==200)
         {
           var xmlDoc=xmlHttp.responseXML;
           var message=xmlDoc.getElementsByTagName("message")[0].firstChild.data;
             if(message!="end")
             {
                var new_row=createRow(message);
                  var table=document.getElementById("myTable");
                  var table_body=table.getElementsByTagName("tbody").item(0);
                  var first_row=table_body.getElementsByTagName("tr").item(0);
                  table_body.insertBefore(new_row,first_row);
                  setTimeout("pollServer()",5000);
                  refreshTime();
             }
         }
      }
    }
    //refreshTime方法
    function refreshTime()
    {
      var time_span=document.getElementById("time");
      var time_val=time_span.innerHTML;
      var int_val=parseInt(time_val);
      var new_int_val=int_val-1;
      if(new_int_val>-1)
      {
        setTimeout("refreshTime()",1000);
           time_span.innerHTML=new_int_val;
      }else
      {
        time_span.innerHTML=5;
      }
    }
    //创建表的行
    function createRow(message)
    {
      var row=document.createElement("tr");
      var cell=document.createElement("td");
      var cell_data=document.createTextNode(message);
      cell.appendChild(cell_data);
      row.appendChild(cell);
      return row;
    }
    </script>
</HEAD>
<BODY onLoad="doStart()">
<span id="time" style="display=none" >5</span>
</p>
<table id="myTable" align="center">
  <tbody>
    <tr id="row_0">
      <td></td>
    </tr>
  </tbody>
</table>
</BODY>
</HTML>


(2)服务端(如果你使用ASP.NET或JSP或PHP,道理一样)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
rem 必须设置成"text/xml"
Response.CharSet="gb2312"
Response.ContentType="text/xml"
%>
<%
dim types
dim res
dim message
dim counter:counter=1
if(session("counter")="") then session("counter")=0
types=replace(Trim(Request.QueryString("type")),"'","")
counter=session("counter")
if types="start" then
    counter=1
end if
select case counter
      case 1:message="姓名:莫小明,学号:20032564,性别:男,年龄:25岁,籍贯:广西"
      case 2:message="姓名:刘德华,学号:20062564,性别:男,年龄:44岁,籍贯:香港"
      case 3:message="姓名:黎  明,学号:16588587,性别:男,年龄:36岁,籍贯:重庆"
      case 4:message="姓名:张三 5,学号:20062564,性别:女,年龄:29岁,籍贯:重庆"
      case 5:message="姓名:张三 6,学号:20062564,性别:男,年龄:24岁,籍贯:重庆"
      case 6:message="姓名:张三 7,学号:20062564,性别:女,年龄:18岁,籍贯:重庆"
      case 7:message="end"
      case else
            message="end"
end select
session("counter")=session("counter")+1
res="<message>"+message+"</message>"
Response.Write("<response>"+res+"</response>")
%>

至于细节,相信大家都能很快的理解。

上一篇:在jQuery中利用AJAX加载XML数据并解析
下一篇:如何编写一个自动投票程序
评论列表
正在加载评论……
  
评论   
呢  称:
验证码: 若看不清请点击更换!
内  容:
 
 
  在线洽谈咨询:
点击这里,在线洽谈   点击这里,在线洽谈   点击这里,在线洽谈
与我交谈  与我交谈 与我交谈
乘车路线    汇款方式   加盟合作  人才招聘  
公司地址:青海省西宁市西关大街73号(三二四部队招行所四楼)     青ICP备13000578号-1 公安机关备案号:63010402000123    
QQ:147399120    mail:lostlove000@163.com    电话: 13897410341    邮编:810000
© Copyright( 2008-2009) QhWins.Com All Rights Reserved    版权所有:西宁威势电子信息服务有限公司 未经书面制授权,请勿随意转载!
业务:青海网站制做青海网站建设青海网页设计西宁网站制做西宁网站建设青海域名注册青海网络推广青海网站推广青海空间租用青海软件开发网站安全网络安全