ajax的理解與工作流程

2022-07-29 07:36:13 字數 1611 閱讀 1633

一、什麼是ajax

ajax是一種非同步通訊技術。在ajax出現之前,客戶端與服務端之間直接通訊。引入ajax之後,客戶端與服務端加了乙個第三者--ajax。有了ajax之後,通過在後台與伺服器進行少量資料交換,可以達到在不重新整理整個頁面的情況下實現區域性重新整理。其原理如圖

二、xhr物件

ajax技術的核心是xmlhttprequest物件(簡稱xhr)。ie7+、firefox、opera、chrome和safari都支援原生的xhr物件,建立xhr物件可以這樣寫

var xhr = new xmlhttprequest();
那如果要相容ie6、7又該怎麼寫

var xhr = new activexobject("msxml2,xmlhttp");
因此相容寫法如下

1 if(window.activexobject)  else
三、xhr用法建立完xhr物件後,要呼叫open()方法建立請求,open()方法接受三個引數:

1.要傳送的請求的型別(如"get"、"post"等)

2.請求的url

3.表示是否非同步傳送請求的布林值(預設為true,表示非同步)

xhr.open("get","index.php",true);
post()請求方法如下面**

xhr.open("get","index.php",true);

//post()方法必須在send()方法之前加上下面這段**

說明一點:url相對於執行**的當前頁面,也可以用絕對路徑

準備工作做好後,呼叫send()方法傳送請求,

xhr.send(null);

這裡get方法傳輸的資料已經放到url中,可以將引數設定為null

在呼叫send()方法後,請求就會被分派到伺服器,onreadychange捕獲請求的狀態碼,並進行檢測

onreadychange物件有個readystate屬性,該屬性的值表示當前的活動階段,其值有如下幾個:

0:未初始化。尚未呼叫open()方法

1:啟動。已經呼叫open()方法,但尚未呼叫send()方法

2:傳送。已經呼叫send()方法,但尚未接收到響應

3:接收。已經接受到部分響應資料

4:完成。已經接受到全部響應資料,並且可以在客戶端使用

我們只需判斷readystate的值是否為4就可以知道所有資料已經就緒。

1 xhr.onreadystatechange = function()else  

10 }

四、總結原生ajax的請求總結為一下六個步驟

1.建立xhr物件

2.呼叫open()方法建立請求

3.呼叫send()方法傳送請求

4.onreadychange捕獲請求的狀態碼

5.判斷狀態嗎是否成功

6.呼叫ajax的responsetext屬性返回資料

DHCP的工作流程

1.dhcp 協議簡介 dhcp 全稱是 dynamic host configuration protocol 中文名為動態主機配置協議,它的前身是 bootp 它工作在 osi的應用層,是一種幫助計算機從指定的 dhcp 伺服器獲取它們的配置資訊的自舉協議。dhcp 使用客戶端 伺服器模式,請求...

Struts的工作流程

當actionservlet接受到乙個客戶請求時,將執行如下流程。流程 2 如果actionform例項不存在,就建立乙個actionform物件,把客戶提交的表單資料儲存到actionform物件中。3 根據配置資訊決定是否需要表單驗證。如果需要驗證,就呼叫actionform的validate ...

struts的工作流程!

已經開始接觸到框架了,今天是學習struts的第一天,感覺有點小暈!和周圍同學了解到以後工作可能會用的很少,哎!既然學了就好好搞懂吧!struts是一種組建,是實現web中一些 和結構的軟體。現在學的是struts1.2版本,struts是基於mvc的,有乙個actionservlet,客戶端的所以...