掌握 AJAX訪問原理
? ? ? 瀏覽器發(fā)送請求到服務(wù)器,服務(wù)器把處理結(jié)果響應(yīng)到瀏覽器,如果是ajax引擎發(fā)送的請求,把響應(yīng)結(jié)果交給ajax引擎進行處理
創(chuàng)建ajax請求的代碼是?
ajax.open()
發(fā)送ajax請求的代碼是?
ajax.send()
聲明ajax監(jiān)聽的代碼
ajax.onreadystatechange=function(){}
ajax異步同步總結(jié)和ajax的get請求和ajax的post請求
ajax.open(method, url, asyncd)
method表示請求方式:
get請求:請求數(shù)據(jù)以?隔開,添加到url后面
請求數(shù)據(jù)不能傳到send方法中
post請求:
post方法需要進行單獨的進行請求數(shù)據(jù)設(shè)置。
使用ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
設(shè)置請求數(shù)據(jù)為鍵值對數(shù)據(jù),如果有請求數(shù)據(jù)怎Ajax.send(鍵值對數(shù)據(jù)&鍵值對數(shù)據(jù)...),
如果沒有請求數(shù)據(jù)則ajax.send(NULL)
url:請求地址
asyncd:設(shè)置同步或者異步請求,ture表示異步,false表示同步
異步:當(dāng)前js函數(shù)繼續(xù)執(zhí)行,不需要等待ajax請求響應(yīng)以及響應(yīng)的處理;
同步:當(dāng)前js函數(shù)不會繼續(xù)執(zhí)行,需要等待ajax執(zhí)行完畢,才能繼續(xù)執(zhí)行
明確的ajax使用流程是?
流程:
1、創(chuàng)建ajax引擎對象
2、聲明監(jiān)聽函數(shù)
//判斷ajax狀態(tài)碼
//判斷響應(yīng)狀態(tài)碼
//獲取響應(yīng)信息(普通字符串,ajax字符串)
3、創(chuàng)建并發(fā)送請求
//創(chuàng)建請求(設(shè)置請求方式,設(shè)置請求地址,設(shè)置同步或異步)
//發(fā)送請求
4、其他處理
為什么需要json格式響應(yīng)數(shù)據(jù)
服務(wù)器響應(yīng)給瀏覽器的數(shù)據(jù)類型是字符串類型
如果數(shù)據(jù)比較大時,請求數(shù)據(jù)需要拼接成一個良好格式的字符串?dāng)?shù)據(jù),這是就需要json格式
json數(shù)據(jù)的格式
var 對象名={
? ? 鍵名:值,
? ? 鍵名:值,
? ? ......
? ? 鍵名:值
}
json的作用
? ? ? 保證對象中數(shù)據(jù)的緊密性與完整性
eval方法的作用是什么?
? ? ? 將字符串?dāng)?shù)據(jù)轉(zhuǎn)化成js對象
用eval方法將json字符串轉(zhuǎn)換對js對象的代碼是?
eval("var obj="+data);
gson包的作用是什么?使用哪個方法可以將Java對象轉(zhuǎn)換為對應(yīng)的json字符串
簡化操作,提高開發(fā)效率,把java對象直接轉(zhuǎn)換成json格式字符串
String str=new Gson().toJson(u);
實現(xiàn)用戶名校驗的思路是什么?
思路:
1、用戶寫書用戶名,在失去焦點時進行用戶校驗
2、失去焦點發(fā)送數(shù)據(jù)到服務(wù)器,服務(wù)器到數(shù)據(jù)庫查驗是否有數(shù)據(jù)信息、
3、校驗結(jié)果響應(yīng)給客戶端
4、在當(dāng)前頁面,用戶框后顯示提示語
為什么要封裝ajax代碼。
在進行使用ajax處理業(yè)務(wù)時,很多代碼都是相同的,編寫時需要重復(fù)進行編寫,封裝后可以提高開發(fā)效率,增加可維護性
封裝的思想是什么?
相同封裝不同傳參
封裝的deal200的原理是什么?
? ? ? ? 在進行使用ajax處理業(yè)務(wù)時,很多代碼都是相同的,編寫時需要重復(fù)進行編寫,封裝后可以提高開發(fā)效率,增加可維護性