看了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。是不是任何人都可以建立一個請求(不只是點擊一個鏈接)?