1.ajax簡(jiǎn)介 :與服務(wù)器進(jìn)行交互的技術(shù)
(1)異步JavaScript和xml稻薇,是可以與服務(wù)器進(jìn)行交互的技術(shù)之一
(2):ajax的語(yǔ)言載體是javascript。JavaScript的語(yǔ)言載體是瀏覽器。
(3)ajax最大的特點(diǎn):頁(yè)面不刷新
2.使用ajax
ajax創(chuàng)建對(duì)象:
(1)主流瀏覽器:火狐 Google 蘋果safari opera包括IE7以上版本的瀏覽器
var xhr = new XMLHttpRequest();
(2)IE6\7\8方式:
var xhr = new ActiveXObject("Microsoft.XMLHTTP"); //最原始的方式
var xhr = new ActiveXObject("Msxml2.XMLHTTP"); ? //升級(jí)
var xhr = new ActiveXObject("Msxml2.XMLHTTP.3.0"); ?//升級(jí)
var xhr = new ActiveXObject("Msxml.XMLHTTP.5.0"); ?//升級(jí)
var xhr = new ActiveXObject("Msxml2.XMLHTTP.6.0"); ?//IE維護(hù)的最高版本。
如下:
之前還需要進(jìn)行瀏覽器兼容性的判斷 現(xiàn)在已經(jīng)不需要了:判斷方式
3.ajax發(fā)起對(duì)服務(wù)器的請(qǐng)求
三步:創(chuàng)建對(duì)象 http請(qǐng)求配置 ?發(fā)送請(qǐng)求
4.ajax接收服務(wù)器返回的信息
(1)接收類型
瀏覽器可以接受的信息ajax都可以接收睛竣,比如 字符串 HTML
5.get post之間的區(qū)別
(1)傳輸?shù)臄?shù)據(jù)量: get方式的大小是受瀏覽器的限制,大部分為2k次询,post原則上沒(méi)有限制彰檬,php.ini對(duì)他的限制是8M
(2)傳輸安全方面有區(qū)別 post傳輸數(shù)據(jù)是更加安全的
(3)傳遞數(shù)據(jù)的形式不一樣 get在url地址后面是以其請(qǐng)求字符串形式傳遞參數(shù),post方式是把form表單中的數(shù)據(jù)請(qǐng)求才出來(lái)以xml的形式傳遞給服務(wù)器乔询。
6.get請(qǐng)求需要注意的兩個(gè)地方
(1)在url地址后面以請(qǐng)求字符串(傳遞的get參數(shù)信息)形式傳遞數(shù)據(jù)
(2)對(duì)中文 = & 等特殊符號(hào)處理
如下:
服務(wù)器就是一個(gè)$_GET,客戶端請(qǐng)求的返回樟插,結(jié)果與輸入的不相同,就是因?yàn)?amp;特殊符號(hào)的問(wèn)題,所以要進(jìn)行字符編碼處理黄锤。
php是使用函數(shù) urlencode() ? urldecode()進(jìn)行編碼與反編碼處理
javascript中使用encodeURIComponent進(jìn)行對(duì)特殊字符進(jìn)行編碼處理搪缨。
結(jié)果:
7.post請(qǐng)求應(yīng)該注意的四個(gè)地方
(1):給服務(wù)器傳遞數(shù)據(jù)需要調(diào)用send(請(qǐng)求字符串?dāng)?shù)據(jù))方法
(2):調(diào)用方法setRequestHeader()把傳遞的數(shù)據(jù)組織為xml格式(模仿form表單傳遞數(shù)據(jù))
(3):傳遞的中文信息無(wú)需編碼,特殊符號(hào)仍需編碼
(4)該方式請(qǐng)求的同時(shí)也可以傳遞get參數(shù)信息鸵熟,同樣使用$_GET
set
8.同步副编、異步
ajax對(duì)象.open(get/post,url,[異步true/同步false]);
ajax是可以與服務(wù)器進(jìn)行異步/同步交互的技術(shù)
異步;同一時(shí)間 多進(jìn)程 ? ? 同步:同一時(shí)間 一個(gè)進(jìn)程
9.ajax無(wú)刷新分頁(yè)