Ajax基本概念
一. Ajax
1. 什麽是ajax
Ajax: asynchronous javascript and xml (異步js和xml)
其是可以與服務器進行(異步/同步)交互的技術一。
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. get和post方式的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 ajax之get方式請求
①在url地址後邊以請求字符串(傳遞的get參數信息)形式傳遞數據。
② 對中文、=、&等特殊符號處理
=、&符號在瀏覽器裏邊會與請求字符串的關鍵符號有混淆,避免歧義產生需要對其進行編碼.
在瀏覽器的地址欄裏邊傳遞一些特殊符號信息,會被誤解,例如 & = 空格 中文。
在php裏邊可以函數函數 urlencode()/urldecode()對特殊符號進行編碼、反編碼處理
(url_encode()可以把中文轉變為瀏覽器可以識別的信息。轉變之後的信息具體為%號後接兩個十六進制數)
在javascript裏邊可以通過encodeURIComponent ()對特殊符號等信息進行編碼。
經過以上紅色函數編碼的內容在服務器端可以正常接收,不需要反編碼。
4.3 ajax之post方式請求
① 給服務器傳遞數據需要調用send(請求字符串數據)方法
② 調用方法setRequestHeader()把傳遞的數據組織為xml格式(模仿form表單給服務器傳遞數據)
③ 傳遞的中文信息無需編碼,特殊符號像 &、=等 需要編碼
④ 該方式請求的同時也可以傳遞get參數信息,同樣使用$_GET接收該信息
5. 同步、異步
ajax是可以與服務器進行(異步或同步)交互的技術之一。
異步:同一個時間點允許執行多個進程。
同步:同一個時間點只允許執行一個進程。
ajax對象.open(請求方式,請求地址,同步false/[異步true]);
5.1 什麽時候使用同步請求
ajax絕大多數情況下進行異步請求,但是有的時候也要使用“同步請求”(其不能被取代)。例如頁面有兩部分內容,一前一後,ajax請求和正常的html內容輸出,如果html的輸出內容包括ajax請求的內容,就需要使得ajax請求完成了再進行html內容的輸出,這樣就要設置兩者一前一後調用(而非同時調用),此時要使用同步請求。
Ajax基本概念