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