1. 程式人生 > >Ajax基本概念

Ajax基本概念

紅色 服務器端 request json info 技術 概念 pos 中文

. Ajax

1. 什麽是ajax

Ajax: asynchronous javascript and xml (異步jsxml)

其是可以與服務器進行(異步/同步)交互的技術一。

ajax的語言載體是javascript

最大特點:頁面不刷新

2. ajax出現的歷史

1999年,微軟公司發布IE5瀏覽器的時候嵌入的一種技術。起初名字是XMLHttp

直到2005年,google公司發布了一個郵箱產品gmail,內部有使用ajax技術,該事情引起人們對ajax的註意,也使得一蹶不振的javascript語言從此被人們重視起來。

3. ajax技術是許多舊技術的集合

xhtml、css、javascript、xml、xmlhttprequest對象(ajax對象)

其中XMLHttpRuquest是ajax的官方的名稱。

. ajax使用

1. 創建ajax對象

2. 發起對服務器的請求

技術分享圖片

3. 接收服務器返回信息

ajax可以接收什麽信息?

答:瀏覽器可以接收的信息ajax可以接收,例如字符串、html標簽、css樣式內容、xml內容、json內容等等。

4. getpost方式的ajax請求

4.1 兩者的不同

① 給服務器傳遞數據量,get最多是2k

post原則沒有限制,php.ini對其限制為8M

② 安全方面,post傳遞數據較安全

③ 傳遞數據的形式不一樣

get方式在url地址後邊以請求字符串

形式傳遞參數

http://網址/index.php?name=tom&age=23&addr=beijing

藍色部分就是請求字符串,就是一些-值”對,中間使用&符號連接。

post方式是把form表單的數據給請求出來以xml形式傳遞給服務器

4.2 ajaxget方式請求

①在url地址後邊以請求字符串(傳遞的get參數信息)形式傳遞數據。

② 對中文=&等特殊符號處理

=、&符號在瀏覽器裏邊會與請求字符串的關鍵符號有混淆,避免歧義產生需要對其進行編碼.

在瀏覽器的地址欄裏邊傳遞一些特殊符號信息,會被誤解,例如 & = 空格 中文。

php裏邊可以函數函數 urlencode()/urldecode()對特殊符號進行編碼、反編碼處理

(url_encode()可以把中文轉變為瀏覽器可以識別的信息。轉變之後的信息具體為%號後接兩個十六進制數)

javascript裏邊可以通過encodeURIComponent ()特殊符號等信息進行編碼。

經過以上紅色函數編碼的內容在服務器端可以正常接收,不需要反編碼。

4.3 ajaxpost方式請求

① 給服務器傳遞數據需要調用send(請求字符串數據)方法

② 調用方法setRequestHeader()把傳遞的數據組織為xml格式(模仿form表單給服務器傳遞數據)

③ 傳遞的中文信息無需編碼特殊符號 &、= 需要編碼

④ 該方式請求的同時也可以傳遞get參數信息,同樣使用$_GET接收該信息

5. 同步、異步

ajax是可以與服務器進行(異步同步)交互的技術之一。

異步:同一個時間點允許執行多個進程。

同步:同一個時間點只允許執行一個進程。

ajax對象.open(請求方式,請求地址,同步false/[異步true]);

技術分享圖片

5.1 什麽時候使用同步請求

ajax絕大多數情況下進行異步請求,但是有的時候也要使用“同步請求”(其不能被取代)。例如頁面有兩部分內容,一前一後,ajax請求和正常的html內容輸出,如果html的輸出內容包括ajax請求的內容,就需要使得ajax請求完成了再進行html內容的輸出,這樣就要設置兩者一前一後調用(而非同時調用),此時要使用同步請求

Ajax基本概念