Ajax技术之深入浅出

Ajax全称:(Asynchronous JavaScript + XML)

     基于web标准(standards-based presentation)XHTML+CSS的表示;

主要包含了以下几种技术:
     使用 DOM(Document Object Model)进行动态显示及交互;

     使用 XML 和 XSLT 进行数据交换及相关操作;
     使用 XMLHttpRequest 进行异步数据查询、检索;
     使用 JavaScript 将所有的东西绑定在一起。

    类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。

 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

基础应用:

  创建XMLHttpRequest 方法如下:


  XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。 后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类,不过它们创建XMLHttpRequest类的方法不同。


  对于Internet Explorer浏览器:


  xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0


  xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");


  xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");


  由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致,为了更好的兼容不同版本的Internet Explorer浏览器,因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类,上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法。


  对于Mozilla﹑Netscape﹑Safari等浏览器


  创建XMLHttpRequest 方法如下:xmlhttp_request = new XMLHttpRequest();


  如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。 为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。


  xmlhttp_request = new XMLHttpRequest();


  xmlhttp_request.overrideMimeType('text/xml');


  在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式:


  try{


  if( window.ActiveXObject ){


  for( var i = 5; i; i-- ){


  try{


  if( i == 2 ){


  xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }


  else{


  xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );


  xmlhttp_request.setRequestHeader("Content-Type","text/xml");


  xmlhttp_request.setRequestHeader("Charset","gb2312"); }


  break;}


  catch(e){


  xmlhttp_request = false; } } }


  else if( window.XMLHttpRequest )


  { xmlhttp_request = new XMLHttpRequest();


  if (xmlhttp_request.overrideMimeType)


  { xmlhttp_request.overrideMimeType('text/xml'); } } }


  catch(e){ xmlhttp_request = false; }


  发送请求了


  可以调用HTTP请求类的open()和send()方法,如下所示:


  xmlhttp_request.open('GET', URL, true);


  xmlhttp_request.send(null);


  open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。


  第二个参数是请求页面的URL。


  第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。

处理从服务器得到的数据:


  有两种方式可以得到这些数据:


  (1) 以文本字符串的方式返回服务器的响应


  (2) 以XMLDocument对象方式返回响应

 

你可能感兴趣的:(Ajax)