技术开发 频道

ASP.NETWeb应用程序的简单AJAX实现


【IT168技术文档】

  (一) 基本AJAX JavaScript方法

  我把所有的JavaScript方法分成两部分:调用页面特定的 JavaScript方法,和通用于所有调用页面的AJAX JavaScript方法。特定的方法还包括一个回调函数,由于它负责更新页面内容。通用的 AJAX方法负责实例化一个XmlHttp对象并向远程页面发送异步请求。

  得到一个XmlHttp对象的过程因浏览器的不同而有所不同。我把它们区分为两种不同的基本类型:微软浏览器(IE家族之一)和Mozilla浏览器(它是指Mozilla Firefox, Netscape,或Safari之一)。我还在Opera浏览器上测试了本文中的代码,但是我不可能保证它会一直工作良好。
function GetXmlHttpObject(handler){  var objXmlHttp = null;  if (!window.XMLHttpRequest) {   //微软   objXmlHttp = GetMSXmlHttp();   if (objXmlHttp != null) {    objXmlHttp.onreadystatechange = handler;   }  }  else {   // Mozilla | Netscape|Safari   objXmlHttp = new XMLHttpRequest();   if (objXmlHttp != null) {    objXmlHttp.onload = handler;    objXmlHttp.onerror = handler;   }  }  return objXmlHttp; } function GetMSXmlHttp(){  var xmlHttp = null;  var clsids = ["Msxml2.XMLHTTP.6.0""Msxml2.XMLHTTP.5.0""Msxml2.XMLHTTP.4.0""Msxml2.XMLHTTP.3.0""Msxml2.XMLHTTP.2.6""Microsoft.XMLHTTP.1.0""Microsoft.XMLHTTP.1""Microsoft.XMLHTTP"];  for(var i=0; i<clsids.length && xmlHttp == null; i++) {   xmlHttp = CreateXmlHttp(clsids[i]);  }  return xmlHttp; } function CreateXmlHttp(clsid) {  var xmlHttp = null;  try {   xmlHttp = new ActiveXObject(clsid);   lastclsid = clsid;   return xmlHttp;  }  catch(e) {} }
  如你所见,GetXmlHttpObject方法接受一个处理器参数-它是一个应该在页面特定的代码定义的回调方法的名字。现在,既然我们已经有了一个XmlHttp对象,那么我们就可以发送异步的请求了。
function SendXmlHttpRequest(xmlhttp, url) {  xmlhttp.open('GET', url, true);  xmlhttp.send(null); }
0
相关文章