欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用Ajax实现简单的异步通信

程序员文章站 2022-03-06 13:49:15
...

Ajax即异步的JavaScript和XML,是一种无需重新加载整个页面的情况下,能够部分更新网页的技术,创建快速动态网页。使用的大致框架如下:

function testAjax(){   
   var xmlhttp,xmlDOC;    
   //为了适应所有浏览器,进行判断新建对象    
   if(window.XMLHttpRequest){        
       xmlhttp = new XMLHttpRequest();    
   }
   else{       
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
   }   
    // 判断状态    
    xmlhttp.onreadystatechange = function(){        
    if(xmlhttp.readyState== 4 && xmlhttp.status == 200){
         xmlDOC = xmlhttp.responseXML; //返回XML格式文件            
         //x = xmlDOC.getElementsByTagName("xml标签名"); //返回xml时使用        
         }    
    }   
     xmlhttp.open("GET","文件路径","true");    
     xmlhttp.send(); //发送http请求
}

先定义两个变量,第一个xmlhttp变量存储新建的XMLHttpRequest 对象,xmlDOC存储通信成功返回的值。onreadystatechange事件,在状态改变时触发。其中readyState的值的定义有:

定义
0 请求未初始化
1 服务器连接已确定
2 请求已接收
3 请求处理中
4 请求已完成,且响应已就绪

status为http状态码,常见的状态码有:

状态码 定义
200 请求成功
301 资源(网页等)被永久转移到其它URL
200 请求的资源(网页等)不存在
200 内部服务器错误

所以判断在readyState为4并且status为200时 进行操作。返回值由两种类型,XML和字符串类型,即responseXML和responseText;如果返回XML就可以利用XML DOM
获取标签内容进行操作。返回字符串就用字符串解析获得里面的数据。

Ajax最核心的部分就是XMLHttpRequest对象,用于和服务器交换数据。
对于该对象的两个方法,如下:
1)open(method,url,async);
2) send(string);
open方法中,参数method为方法,为GET或者POST,GET和POST的用法及注意如下:
GET:

  • url参数是可见的,不要用get传递保密数据
  • 往数据库添加或删除数据不适合用get

POST:

  • 需要上传文件
  • 数据非常长
  • 包含需要保密的数据
  • 向数据库添加或删除数据
  • 发送包含未知字符的用户输入时,post比get更稳定更可靠
    url表示要打开文件所在路径,相对路径和绝对路径都可以,云服务器地址也可以。最后一个参数设置是否采用异步方式,
    send方法中,如果是GET方法,参数不写。string参数仅用于POST请求,存放将要向服务器发送数据。