Ajax基础教程(4)- 实现基本Ajax技术 4.4 创建自动刷新页面

http://tech.ddvip.com   2007年11月21日    社区交流

本文详细介绍Ajax基础教程(4)- 实现基本Ajax技术 4.4 创建自动刷新页面

  代码清单4-7 dynamicUpdate.html

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
  <title>Ajax Dynamic Update</title>
  <script type="text/javascript">
  var xmlHttp;
  function createXMLHttpRequest() {
  if (window.ActiveXObject) {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
  xmlHttp = new XMLHttpRequest();
  }
  }
  function doStart() {
  createXMLHttpRequest();
  var url = "DynamicUpdateServlet?task=reset";
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = startCallback;
  xmlHttp.send(null);
  }
  function startCallback() {
  if (xmlHttp.readyState == 4) {
  if (xmlHttp.status == 200) {
  setTimeout("pollServer()", 5000);
  refreshTime();
  }
  }
  }
  function pollServer() {
  createXMLHttpRequest();
  var url = "DynamicUpdateServlet?task=foo";
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = pollCallback;
  xmlHttp.send(null);
  }
  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 pollCallback() {
  if (xmlHttp.readyState == 4) {
  if (xmlHttp.status == 200) {
  var message =
  xmlHttp.responseXML
  .getElementsByTagName("message")[0].firstChild.data;
  if (message != "done") {
  var new_row = createRow(message);
  var table = document.getElementById("dynamicUpdateArea");
  var table_body =
  table.getElementsByTagName("tbody").item(0);
  var first_row =
  table_body.getElementsByTagName("tr").item(1);
  table_body.insertBefore(new_row, first_row);
  setTimeout("pollServer()", 5000);
  refreshTime();
  }
  }
  }
  }
  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>
  <h1>Ajax Dynamic Update Example</h1>
  This page will automatically update itself:
  <input type="button" value="Launch" id="go" onclick="doStart();"/>
  <p>
  Page will refresh in <span id="time">5</span> seconds.
  <p>
  <table id="dynamicUpdateArea" align="left">
  <tbody>
  <tr id="row0"><td></td></tr>
  </tbody>
  </table>
  </body>
  </html>

来源:CSDN    责编:豆豆技术应用

正在加载评论...