AJAX 自动刷新页面

count.html
  1. <html>
  2. <head>
  3. <title>aaaaaa</title>
  4. <script>
  5. var xmlHttp;
  6. function createXMLHttpRequest(){
  7.     if (window.ActiveXObject)
  8.     {
  9.         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  10.     }
  11.     else if (window.XMLHttpRequest)
  12.     {
  13.         xmlHttp = new XMLHttpRequest();
  14.     }
  15. }
  16. function doStart ()
  17. {
  18.     createXMLHttpRequest();
  19.     var url = "count.php?task=reset";
  20.     xmlHttp.open("GET",url,true);
  21.     xmlHttp.onreadystatechange = startCallback;
  22.     xmlHttp.send(null);
  23. }
  24. function startCallback()
  25. {
  26.     if (xmlHttp.readyState == 4)
  27.     {
  28.         if (xmlHttp.status == 200)
  29.         {
  30.             setTimeout("pollServer()",5000);
  31.             refreshTime();
  32.         }
  33.     }
  34. }
  35. function pollServer() {
  36.     createXMLHttpRequest();
  37.     var url = "count.php?task=foo";
  38.     xmlHttp.open("GET",url,true);
  39.     xmlHttp.onreadystatechange = pollCallback;
  40.     xmlHttp.send(null);
  41. }
  42. function refreshTime() {
  43.     var time_span = document.getElementById("time");
  44.     var time_val = time_span.innerHTML;
  45.     var int_val = parseInt(time_val);
  46.     var new_int_val = int_val - 1;
  47.     if (new_int_val > -1)
  48.     {
  49.         setTimeout("refreshTime()",1000);
  50.         time_span.innerHTML = new_int_val;
  51.     }else {
  52.         time_span.innerHTML = 5;
  53.     }
  54. }
  55. function pollCallback() {
  56.     if (xmlHttp.readyState == 4)
  57.     {
  58.         if (xmlHttp.status == 200)
  59.         {
  60.             var message = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;//取得XML中MESSAGE的子节点数据
  61.             if ( message != "done")
  62.             {
  63.                 var new_row = createRow(message);
  64.                 var table = document.getElementById("dynamicUpdateArea");//获得dunamicUpdateArea区域的元素
  65.                 var table_body = table.getElementsByTagName("tbody").item(0);//取得TBODY节点元素
  66.                 var first_row = table_body.getElementsByTagName("tr").item(1);
  67.                 table_body.insertBefore(new_row,first_row);
  68.                 setTimeout("pollServer()",5000);
  69.                 refreshTime();
  70.             }
  71.         }
  72.     }
  73. }
  74. function createRow(message){
  75.     var row = document.createElement("tr");
  76.     var cell = document.createElement("td");
  77.     var cell_data = document.createTextNode(message);
  78.     cell.appendChild(cell_data);
  79.     row.appendChild(cell);
  80.     return row;
  81. }
  82. </script>
  83. </head>
  84. <body>
  85. <h1>aaaaaaaa</h1>
  86. bbbbbbbbbbbbbbbbbbbbbbb:
  87.     <input type="button" value="launch" οnclick="doStart();">
  88. <p>
  89. Page will refresh in <span id="time">5</span> seconds.
  90. <p>
  91. <table id="dynamicUpdateArea" align="left">
  92.     <tbody>
  93.         <tr id="row0"><td></td></tr>
  94.     </tbody>
  95. </table>
  96. </body>
  97. </html>
count.php
  1. <?php
  2. class test
  3. {
  4. function test(){
  5.     header('Content-Type: text/xml');
  6. $task=$_GET['task'];
  7. if($task == "reset")
  8. {
  9.     $_SESSION['counter']=1;
  10. }
  11. else
  12. {
  13.     switch($_SESSION['counter']){
  14.         case 1: $message = "11111111111111111";break;
  15.         case 2: $message = "22222222222222222";break;
  16.         case 3: $message = "33333333333333333";break;
  17.         case 4: $message = "44444444444444444";break;
  18.         case 5: $message = "55555555555555555";break;
  19.         case 6: $message = "66666666666666666";break;
  20.         case 7: $message = "done";break;
  21.     }
  22.     $_SESSION['counter'] ++ ;
  23. }
  24. $res = "<response><message>".$message."</message></response>";
  25. echo $res;
  26. }
  27. }
  28. session_start();
  29. if(!isset($_SESSION['counter'])) $_SESSION['counter']=1;
  30. $bb = new test();
  31. ?>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值