Ajax基础教程(2)-使用XMLHttpRequest对象 2.6 如何发送简单请求

豆豆网   技术应用频道   2007年11月21日    社区交流

本文详细介绍Ajax基础教程(2)-使用XMLHttpRequest对象 2.6 如何发送简单请求

  函数指针与任何其他变量类似,只不过它指向的不是像串、数字、甚至对象实例之类的数据,而是指向一个函数。在JavaScript中,所有函数在内存中都编有地址,可以使用函数名引用。这就提供了很大的灵活性,可以把函数指针作为参数传递给其他函数,或者在一个对象的属性中存储函数指针。

  对于XMLHttpRequest对象,onreadystatechange属性存储了回调函数的指针。当XMLHttpRequest对象的内部状态发生变化时,就会调用这个回调函数。当进行了异步调用,请求就会发出,脚本立即继续处理(在脚本继续工作之前,不必等待请求结束)。一旦发出了请求,对象的readyState属性会经过几个变化。尽管针对任何状态都可以做一些处理,不过你最感兴趣的状态可能是服务器响应结束时的状态。通过设置回调函数,就可以有效地告诉XMLHttpRequest对象:“只要响应到来,就调用这个函数来处理响应。”

  2.6.1 简单请求的示例

  第一个示例很简单。这是一个很小的HTML页面,只有一个按钮。点击这个按钮会初始化一个发至服务器的异步请求。服务器将发回一个简单的静态文本文件作为响应。在处理这个响应时,会在一个警告窗口中显示该静态文本文件的内容。代码清单2-4显示了这个HTML页面和相关的JavaScript。

  代码清单2-4 simpleRequest.html页面

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Simple XMLHttpRequest</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 startRequest() {
  createXMLHttpRequest();
  xmlHttp.onreadystatechange = handleStateChange;
  xmlHttp.open("GET", "simpleResponse.xml", true);
  xmlHttp.send(null);
  }
  function handleStateChange() {
  if(xmlHttp.readyState == 4) {
  if(xmlHttp.status == 200) {
  alert("The server replied with: " + xmlHttp.responseText);
  }
  }
  }
  </script>
  </head>
  <body>
  <form action="#">
  <input type="button" value="Start Basic Asynchronous Request"
  onclick="startRequest();"/>
  </form>
  </body>
  </html>

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

正在加载评论...