现在的位置: 首页 > 综合 > 正文

Ajax入门介绍详解

2014年02月08日 ⁄ 综合 ⁄ 共 2914字 ⁄ 字号 评论关闭

Ajax

一、


Ajax

简介

AJAX

Asynchronous JavaScript and XML
”(

异步
JavaScript

XML)
AJAX

并非缩写词

而是由
Jesse James
Gaiiett

创造的名词

是指一种创建交互式
网页

应用的网页开发技术。

1.
同步交互和异步交互的理解

举个例子:普通
B/S
模式
(
同步
)     
AJAX

技术
(
异步
)

      

同步

:提交请求
->
等待服务器处理
->
处理完毕返回这个期间客户端浏览器不能干任何事

  
同步是指:发送方发出数据后,等接收方发回响应以后才发下一数据包的通讯方式。  

     

   

异步

:
请求通过事件触发
->
服务器处理(这时浏览器仍然可以作其他
      

事情)
->
处理完毕

    

    

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数
   

据包的通讯方式

2.Ajax:
一种不用刷新整个页面便可与服务器通讯的办法

二、

Ajax

的工作原理

1.

Ajax
的核心是
JavaScript
对象
XmlHttpRequest

2.


AJAX

采用异步交互过程

AJAX
在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理

等待

处理

等待缺点。

用户的浏览器在执行任务时即装载了
AJAX
引擎。
AJAX
引擎用
JavaScript
语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。

        
AJAX

引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。现在,可以用
Javascript
调用
AJAX
引擎来代替产生一个
HTTP
的用户动作,内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给
AJAX
来执行

3.XMLHttpRequest

对象

创建
XMLHttpRequest
对象(由于非标准所以实现方法不统一)

  
(1)Internet Explorer


XMLHttpRequest
实现为一个
ActiveX
对象

 
(2)

其他浏器
Firefox


Safari

Opera
…)
把它实现为一个本地
      
      
    
 
JavaScript

对象。

        
(3)XMLHttpRequest

在不同浏览器上的实现是兼容的,所以可以用同样
   
      
      

的方式访问
XMLHttpRequest
实例的属性和方法,而不论这个实例创
 
      
      
 


建的方法是什么。

       

实例:

function

getX
hr
(){

     

 
   

var

xhr ;

     

 
   

try

{
//firefox,opera
浏览器

        

  
   

xhr =
new

XMLHttpRequest();

     

 
   

}
catch

(err){

         

 
   

try

{
//IE
浏览器5.0

            

  
   

xhr =
new

ActiveXObject(
"Microsoft.XMLHTTP"
);

         

 
   

}
catch

(er){

           

   
   

alert(
"
您的浏览器版本太低了......"

);

         

 
   

}

     

 
   

}

     

 
   

return

xhr;

}

4.XMLHttpRequest

对象方法

方法

描述


abort()

停止当前请求

getAllResponseHeaders()


http
请求的所有响应首部作为键
/
值对返回

getResponseHeader("headerLabel")

返回指定首部的串值

 

open(method,url,async)

 

规定请求的类型、
URL
以及是否异步处理请求。

method


请求的类型;
GET

POST

url


文件在服务器上的位置

async

true

异步)或
false

同步)

send(content)

向服务器发送请求

setRequestHeader("label",
"value")

把指定首部设置为所提供的值。在设置任何首部之前必须先调用
open()

   


5.XMLHttpRequest

对象属性

 

属性

描述

onreadystatechange

存储函数(或函数名),每当
readyState
属性改变时,就会调用该函数。

readyState

存有
XMLHttpRequest
的状态。从

0


4
发生变化。

·        



0:
请求未初始化

·        



1:
服务器连接已建立

·        



2:
请求已接收

·        



3:
请求处理中

·        



4:
请求已完成,且响应已就绪

status

200: "OK"  
404:

未找到页面

responseText

获得字符串形式的响应数据。

responseXML

获得
XML
形式的响应数据。

 

7.

发送请求方法与属性的介绍

利用
XMLHttpRequest
实例与服务器进行通信包含以下
3
个关键部分

 
onreadystatechange

事件处理函数、
open
方法和
send
方法

(1)


.onreadystatechange

 

该事件处理函数由服务器触发,而不是用户

  
 
      


Ajax
执行过程中,服务器会通知客户端当前的通信状态。这

  

依靠更新
XMLHttpRequest
对象的
readyState
来实现
,
改变
readyState   
      
   

属性是服务器对客户端连接操作的一种方式。

 
    
  


每次
readyState
属性的改变都会触发
readystatechange
事件

(2)


.open(method, url,
asynch)

method



请求类型,类似

GET

或”
POST

的字符串。若只想从服务器检索一个文件,而不需要发送任何数据,使用
GET(
可以在
GET
请求里通过附加在
URL
上的查询字符串来发送数据,不过数据大小限制为
2000
个字符
)
。若需要向服务器发送数据,用
POST

url



路径字符串,指向你所请求的服务器上的那个文件。可以是绝对路径或相对路径。

asynch



表示请求是否要异步传输,默认值为
true(
异步
)
。指定
true
,在读取后面的脚本之前,不需要等待服务器的相应。指定
false
,当脚本处理过程经过这点时,会停下来,一直等到
Ajax
请求执行完毕再继续执行。

在某些情况下,有些浏览器会把多个
XMLHttpRequest
请求的结果缓存在同一个
URL
。如果对每个请求的响应不同,这就会带来不好的结果。把当前时间戳追加到
URL
的最后,就能确保
URL
的惟一性,从而避免浏览器缓存结果

 
(3).send(data)

   
open

方法定义了
Ajax

请求的一些细节。
send
方法可为已经待命的请求发送指令

   
data


:将要传递给服务器的字符串。

   

若选用的是
GET


请求

则不会发送任何数据


send

方法传递
null
即可
request.send(null)

   

当向
send()
方法提供参数时,要确保
open()
中指定的方法是
POST
,如果没有数据作为请求体的一部分发送,则使用
null.

      
(4).setRequestHeader(header,value)

参数
header


首部的名字

     
        

参数

【上篇】
【下篇】

抱歉!评论已关闭.