jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery

jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery

ID:30780656

大?。?6.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2019-01-03

jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery_第1頁(yè)
jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery_第2頁(yè)
jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery_第3頁(yè)
jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery_第4頁(yè)
jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery_第5頁(yè)
資源描述:

《jquery191源碼分析系列(十六)ajax之a(chǎn)jax框架_jquery》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、jQueryl.9.1源碼分析系列(十六)ajax之a(chǎn)jax框架AJAX簡(jiǎn)介AJAX是一種在無需重新加載整個(gè)網(wǎng)頁(yè)的情況卜,能夠更新部分網(wǎng)頁(yè)的技術(shù)。您應(yīng)當(dāng)具備的基礎(chǔ)知識(shí)在繼續(xù)學(xué)習(xí)Z前,您需要對(duì)下面的知識(shí)有基木的了解:HTML/XHTMLCSSJavaScript/DOM如果您希望首先學(xué)習(xí)這些項(xiàng)目,請(qǐng)?jiān)谖覀兊氖醉?yè)訪問這些教程。什么是AJAX?AJAX=異步JavaScript和XML。AJAX是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)

2、網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。傳統(tǒng)的網(wǎng)頁(yè)(不使用AJAX)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁(yè)面。有很多使用AJAX的應(yīng)用程序案例:新浪微博、Google地圖、開心網(wǎng)等等。GoogleSuggest在2005年,Google通過其GoogleSuggest使AJAX變得流行起來。GoogleSuggest使用AJAX創(chuàng)造出動(dòng)態(tài)性極強(qiáng)的web界而:當(dāng)您在谷歌的搜索框輸入關(guān)鍵字時(shí)‘JavaScript會(huì)把這些字符發(fā)送到服務(wù)器,然后服務(wù)器會(huì)返冋一個(gè)搜索建議的列表。今天就開始使用AJAXAJAX基于已有的標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)

3、已被大多數(shù)開發(fā)者使用多年。既然是ajax框架,那么閑談一談jQuery的ajax處理思路?,F(xiàn)在的瀏覽器都支持ajax,只不過不同的瀏覽器使用方法可能冇不同(1E使用newwindow.ActiveXObject(,zMicrosoft.XMLHTTP"),標(biāo)準(zhǔn)瀏覽器使用newwindow.XMLHttpRequest())。如果按照這種思路,貌似jQajaxH需要做好兼容處理就行了?不是的,原生的ajax有一個(gè)說大不大說小不小的缺點(diǎn)——不支持跨域(同源策略由來已久,自彳亍百度)。所以jQajax添加了這方而的處理,j

4、Qajax是如何解決跨域問題的?是能取到圖片的,很明顯圖片的路徑和你的服務(wù)端不是一個(gè)域的。你可以試試看所冇的帶冇src屈性的標(biāo)簽都不受同源策略的影響。所以,jQuery就使用了這個(gè)屬性,對(duì)于跨域請(qǐng)求使用script標(biāo)簽的src來請(qǐng)求路徑。然后jQuery在加上對(duì)ajax事件的三種監(jiān)聽方式:1.全局事件:$(document).on('ajaxStart',fu

5、nc);2.ajax設(shè)置回調(diào)項(xiàng):$.ajax({url:,zphp.htmlz,,complete:func});3.deferred綁定方式:$.ajax(…).done(func);基本上這就是jQajax所做的事情。在正真進(jìn)入ajax框架核心之前,先來分析一jQuery準(zhǔn)備的幾個(gè)序列化提交表單的函數(shù)。a.表單序列化所謂的表單序列化即將表單需要捉交的內(nèi)容組成類似:"key二value&key二value…”形式的字符串。序列化用到三個(gè)函數(shù):jQuery.fn.serializeO(序列化函數(shù),篩選出表單中需要提交

6、的數(shù)據(jù)并以序列化字符串方式返回,形如:“key二valuc&kcy二value…”)jQuery.fn.serializeArrayO(篩選出表單中需要捉交的數(shù)據(jù)并以key/value鍵值對(duì)的對(duì)彖數(shù)組格式返冋,返冋[{name:'key,,value:'selectT},{name:*selectM,,value:*selectMT},{name:JselectM',value:'selectM2,},{name:Jkey2,,value:0)???])jQuery.param(serializeArray,trad

7、itional)(將key/value鍵值對(duì)的對(duì)象數(shù)組序列化為"key二value&key二value…”字符串)。serialize直接調(diào)用jQuery.param(this,serializeArray())即可。serializeArray的源碼如下:主要進(jìn)彳亍三個(gè)步驟:提取表單元索、過濾出滿足提交條件的表單元索、組合成key/value鍵值對(duì)的對(duì)象數(shù)組serializeArray:function(){〃將form中的表單相關(guān)的元素取出來組成數(shù)組returnthis.map(function(){//表單節(jié)點(diǎn)

8、有elements這個(gè)特征varclcments=jQucry.prop(this,"clcmcnts");returnelements?jQuery.makeArray(elements):this;})//過濾出為需要提交的表單元素(有name名稱、非disabledyc素、非提交按鈕等元索、checkbox/radio的checked的元

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。