Ajax也用了很長(zhǎng)時(shí)間了,今天只是想整理一下我心中的Ajax.
簡(jiǎn)單的說(shuō)Ajax就是實(shí)現(xiàn)了異步向服務(wù)器請(qǐng)求數(shù)據(jù),讓用戶有更好的體驗(yàn).
XMLHttpRequest其實(shí)也就只有兩種方式返回請(qǐng)求后的數(shù)據(jù):
1.responseText方式,它是返回文本字串的方式,其實(shí)采用這種方式,通常是在服務(wù)端在對(duì)請(qǐng)求響應(yīng)處理后,生成好要在瀏覽器上展示的html代碼后,再直接輸出到客戶端,更新需要更新的客戶端頁(yè)面內(nèi)容.這種方式的好處是能在服務(wù)端生成好客戶端代碼,可減輕客戶端的負(fù)擔(dān),客戶端只需將服務(wù)端生成的代碼innerHTML到對(duì)應(yīng)的區(qū)域就行了... ... 但它的缺點(diǎn)在于,輸出到客戶端的是文本數(shù)據(jù),所以無(wú)法對(duì)得到的數(shù)據(jù)在客戶端進(jìn)行處理,所以就難以行成根據(jù)取回的數(shù)據(jù)的差異對(duì)頁(yè)面進(jìn)行必要的邏輯處理.
2.responseXML方式,它是返回XML格式的文本,它是在服務(wù)端在對(duì)請(qǐng)求響應(yīng)處理后,將數(shù)據(jù)以XML格式的文本返回到客戶瀏覽器上,然后再由客戶端來(lái)完成方式1中由服務(wù)端來(lái)完成的生成頁(yè)面展示的內(nèi)容. 客戶端將解析返回的XML數(shù)據(jù),然后再進(jìn)行頁(yè)面的展示,由于是XML數(shù)據(jù)所以可以進(jìn)行解析便可以根據(jù)解析出的數(shù)據(jù)對(duì)如何展示頁(yè)面進(jìn)行邏輯處理,在這一點(diǎn)上是比responseText要靈活的.但付出的是加大了客戶端的負(fù)擔(dān).
其實(shí)現(xiàn)在我正在學(xué)習(xí)JSON,如果在responseText方式中返回JSON方式的數(shù)據(jù)的話,是完全可以讓responseText和responseXML一樣的靈活的,因?yàn)镴SON也是一種數(shù)據(jù)結(jié)構(gòu),可以將要返回的數(shù)據(jù)組織在其中,到客戶端再進(jìn)行解析,解析也相當(dāng)簡(jiǎn)單,只需evel執(zhí)行即可... 但前提是輸出到客戶端的JSON數(shù)據(jù)結(jié)構(gòu)是正確的,不然js就會(huì)bomb!
以上是僅是我個(gè)人的看法,有不對(duì)之處請(qǐng)大家多指點(diǎn)!