相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- 拉動(dòng)懸浮于頂部的JS控制代碼
- 在JavaScript中構(gòu)建ArrayList示例代碼
- js使用for循環(huán)及if語句判斷多個(gè)一樣的name
- JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
- jQuery CSS()方法改變現(xiàn)有的CSS樣式表
- JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
- jQuery動(dòng)畫高級(jí)用法(上)——詳解animation中的.queue()函數(shù)
- python小技巧之批量抓取美女圖片
- JS中offsetTop、clientTop、scrollTop、offsetTop各屬性介紹
- JS獲取瀏覽器窗口大小 獲取屏幕,瀏覽器,網(wǎng)頁高度寬度
轉(zhuǎn):網(wǎng)站優(yōu)化之Ajax優(yōu)化及相關(guān)工具
web2.0大量的ajax的使用,提高了ui交互的效率,但是過度的濫用會(huì)帶來不少的問題。
ajax使用注意事項(xiàng):
1 盡量避免使用同步ajax調(diào)用。在一些登錄的場(chǎng)合常常使用同步調(diào)用服務(wù)器的登錄接口。
同步調(diào)用,需要將頁面上的所有元素給鎖定住,代價(jià)高昂。
2 ajax調(diào)用時(shí)多使用超時(shí)設(shè)置,目前許多ajax框架如jquery都會(huì)提供超時(shí)參數(shù)的設(shè)置。
利用超時(shí),可以很好的完善ui的交互,同時(shí)避免對(duì)服務(wù)器造成壓力。
3 針對(duì)業(yè)務(wù)特性開啟ajax緩存。不需要重新拉取的東東,盡量的緩存起來。
4 發(fā)送請(qǐng)求前對(duì)發(fā)送的數(shù)據(jù)進(jìn)行pre驗(yàn)證,一方面可以做到對(duì)用戶友好,另一方面避免太多的異常。
不小心的異常數(shù)據(jù)會(huì)導(dǎo)致服務(wù)器down掉。
5 對(duì)于服務(wù)器返回的數(shù)據(jù)也要仔細(xì)處理,不要相信其數(shù)據(jù)一定是格式化和驗(yàn)證好的。譬如對(duì)于json的數(shù)據(jù),需要先判斷相應(yīng)的key是否存在,再進(jìn)行操作,
否則會(huì)出現(xiàn)undifined的情況。
ajax請(qǐng)求處理一般的ui交互流程是這樣的:
1 當(dāng)發(fā)起ajax請(qǐng)求時(shí),更新ui,譬如出現(xiàn)一個(gè)高亮的tip,提示用戶操作開始進(jìn)行
2 鎖住需要更新的ui部份,同時(shí)提醒用戶會(huì)什么會(huì)鎖住,譬如將原div隱藏,加載一個(gè)正在加載的gif圖標(biāo)
3 數(shù)據(jù)成功返回后,更新ui,解除對(duì)ui的鎖定
4 如果服務(wù)器返回失敗,提示用戶友好的失敗信息
ajax使用中一些提示:
1 由于瀏覽器的同時(shí)向一個(gè)域名發(fā)起請(qǐng)求的并發(fā)數(shù)是有限制的,如ie默認(rèn)的是2個(gè),如果同時(shí)發(fā)起的ajax太多的話,是會(huì)被阻塞的。
2 返回的數(shù)據(jù)類型選擇json而不是xml,一方面json數(shù)據(jù)格式會(huì)更小一些,另一方面接送封裝成為一個(gè)js對(duì)象,操作起來性能會(huì)更好一些
3 盡量緩存能夠緩存的內(nèi)容,避免重復(fù)的發(fā)起請(qǐng)求
1)使用全局對(duì)象
2) flash的本地存儲(chǔ)
3)google gears
4) ie的userData
網(wǎng)站優(yōu)化過程常用的工具:
1 firebug和yslow,ff下常用的兩個(gè)工具了
2 httpwatch和fiddler,對(duì)于網(wǎng)絡(luò)時(shí)間的檢測(cè)也不錯(cuò)
3 Task manager
4 js內(nèi)存泄漏檢測(cè)工具
5 觀看優(yōu)化的工具:
1)AjaxView
2)JsLex
3)YUI profiler