看了Dflying Chen 介紹的一篇Ajax的文章就像練練英語自己翻譯一下,由于自己的水平有限,請大家批評指正
本文的作者是知名.NET Ajax框架Ajax.NET Professional(AjaxPro)的作者Michael Schwarz
上個月我發現許多Web2.0網站大量運用了ajax,不過其中有些非常奇怪,因為他們的速度比起前慢了,并且有時候不起作用(在移動設備上),我總結了十條用Ajax的錯誤(平臺無關)
1、 不要通過把整個頁面都放在UpdatePanel中更新整個頁面。在你運行網頁時需要節省時間,不要更新那些能用JavaScript and DHTML (DOM)的部分。
2、 要始終記得有這么幾種訪問者,他們不能用JavaScript或用的版本比較老的瀏覽器或他們對JavaScript支持不好,比如說移動設備。如果這些都不支持,你的訪問者能看到什么?
3、 在客戶端瀏覽器緩存相同的請求或在we服務器端執行緩存。最佳的例子是自動完成個下拉菜單,他們的填充在所有時刻都是相同的,一個有錯誤寫法的自動完成的寫法能減慢你的Web服務器(數據庫服務器),因為那樣會有比起以前用IsPostBack更多地請求。想一下不停的按F5刷新你的網頁的情形。如果你有層疊的下拉菜單你就會結算更多地請求。
4、 在你運用CSS或JavaScript時,不要運行,并發的或運行非常長時間的Ajax請求,一般的瀏覽器只能有兩個并發的http連接(我知道能給變這個,不過默認的還是設為兩個)。如果在讀取圖片的時候由非常多Ajax請求的話,速度會變得非常慢。
5、 什么時候都用異步調用的方法發送XMLHttpRequest.。如果你要用同步的方法也是沒有請問題的,你的瀏覽器不會因為網絡問題或是連接速度慢而凍結的
6、 試著讓你的web應用使用一個非常慢的網絡連接,再嘗試用快的TCP/IP連接
7、 你的web應用是作為桌面程式的替代品?你注意觀察過一般瀏覽器在運行你的Web應用一小時,兩小時或幾天時內存的使用。不是所有人都有你那樣好的機器。
8、 檢查在你返回XMLHttpRequest時你的http請求狀態代碼(status code),那會有一些常見的網絡錯誤像是不可獲得的DNS,Http Server error 500 ,你原來檢查過狀態代碼(status code),他能告訴你瀏覽器在一個為連接的模式
9、 試著禁止XMLHttpRequest object!用IE7你能用native object代替ActiveX object,不過你也能禁止native object。
10、檢查你AJAX requests的安全性!你簡單的打開了你的數據訪問層嗎?充分運用FormsAuthentication和PrincipalPermissions。是不是所有人都能建立一個請求(不只是點擊一個鏈接)?
新聞熱點
疑難解答
圖片精選