過量使用AJAX會影響性能嗎?在大型Web應用程序的情況下,您如何處理AJAX請求以控制異步請求?Ajax是否會降低性能?
回答
多餘使用任何東西會降低性能;在必要時使用AJAX可以提高性能,特別是如果替代方案是服務器的完整整頁往返[asp.net術語中的'回傳']
AJAX本身(被異步請求)..不一般。
但是,如果您有大量的javascript和標記,並且有大量數據通過您的xmlhttprequests傳輸,那麼您可以看到性能受到影響。這真的取決於你希望你的網站如何運作,如果雕刻正確,任何降級通常都是可以避免的。
Ajax只是一個普通的HTTP請求,因爲你的服務器可以處理這些請求,這不會是一個問題。 Ajax的好處在於用戶更快感受到性能,因爲該頁面不必爲每個用戶操作重新加載和重繪。
如果可擴展性是一個問題,我相信您也正在考慮通過向服務器場添加更多Web服務器來水平擴展系統。無論如何,即使是非Ajax的網絡應用也一樣。
如果網站很繁忙,那麼它最終會殺死服務器,除非你在農場。 至於網站本身,它不應該。
AJAX,像任何技術一樣,根據具體情況以及如何實施,可能是件好事或壞事。如果您對異步過程有特殊需求,那麼它是一個很好的工具。但是,如果你不負責任地使用它,你可能會陷入困境。如果您確實使用它,請嘗試找到一個很好的框架,以完成大部分繁重工作,並瞭解AJAX的一些不足之處... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax.shtml
表現什麼?我假設你的意思是用戶體驗方面的應用程序性能。
Ajax看起來最擅長的是僅在需要時才引起網絡流量。一次下載Honkin'偉大的網頁,而不是以儘可能快的方式下載需要的東西。
然後,如果你做了一些需要更多信息的東西,它就會從網絡中獲取。
這意味着永遠不會下載未使用的東西(如果您設計正確,當然 - 錯誤代碼可以像其他任何環境一樣在Ajax中編寫)。
我更喜歡將數據傳輸的Ajax方法和像jQuery這樣的客戶端庫混合使用,以獲得非常好的界面。
根據具體情況,AJAX可能會產生性能開銷,或者實際上可能比不使用AJAX的等功能網站具有更好的性能。
過度使用AJAX可以很容易地讓服務器承載大量繁瑣的請求,並且也可能成爲客戶端CPU的負擔。相反,AJAX也可以用來傳遞HTML和其他代碼的小部分,而不是每個請求的整個頁面,這至少會減少服務器的負擔。
這個故事有兩個方面。
AJAX通常會從客戶的角度來提高性能。不是加載整個頁面,而是在需要時從服務器請求較少量的數據。鑑於HTML頁面經常引用許多依賴文件(圖像,CSS,JavaScript等),每個文件都需要從服務器(或緩存)中獲取命中),因此,明智地使用AJAX可以提高客戶端的性能。
在服務器端,問題變成了需要管理更多連接的問題。輪詢應用程序(特別是瀏覽器內聊天)可能真的開始增加服務器的負載,因爲瀏覽器現在更快速地訪問服務器。在一個典型的動態應用程序中(響應是由代碼而不是靜態文件產生的),你可能會開始遇到問題 - 但這些通常是平衡的,因爲你的請求的複雜性往往要低得多(再說一次,你沒有不會生成整個頁面,而是生成頁面的一小部分),因此您的平臺在任何情況下都可能獲得更高的吞吐量。
任何性能問題的確切結果將取決於許多因素,包括當時的服務器,平臺,框架和主要的高潮條件。
我最終的建議 - 着力打造良好的用戶體驗,智能的開發,收集儘可能多的指標,您可以和優化,當你知道你需要它。
我同意在這裏的不少其他職位。如果你以智能的方式使用它(即,每30秒不使用ajax),那就沒問題。我在我的網站上使用ajax(並且還有一個js免費版本),並且從客戶的角度來看,ajax版本可以從幾乎相同的速度加載到四倍的速度。這完全取決於網站的設計(圖形和其他內容)以及您正在更新的內容。
不足之處在於,由於您必須加載一些框架(即使您創建了自己的框架),您將會對第一頁的負載稍微慢一些,或者進行任何完全刷新,並且會增加處理加載了一下。但是,這只是因爲阿賈克斯提高了生產力,因此用戶可以提出更多請求/更新
- 1. log.debug是否會降低性能
- 2. #defines是否會降低性能?
- 3. SmtpClient.SendAsync是否降低或提高性能?
- 4. 內嵌JavaScript事件是否會降低網頁加載性能?
- 5. 向MySQL引入外鍵是否會降低性能
- 6. 嵌套select子句是否會降低數據庫性能?
- 7. 是否太多symfony中的服務會降低其性能?
- 8. 在MySql中使用IN運算符是否會降低性能?
- 9. 事務塊是否會降低SQL Server的性能?
- 10. 使用PNG是否會降低Android應用程序的性能?
- 11. 增加線程數是否會降低java的整體性能?
- 12. 生活時間(ttl)是否會影響或降低性能?
- 13. Java安全管理器是否會降低性能?
- 14. 空的.ctor和.dtor是否會降低性能?
- 15. 在PHP中包含太多文件是否會降低性能?
- 16. 分區是否會降低查詢性能?
- 17. 調用方法是否會降低性能?
- 18. Do Views是否會降低LINQ查詢性能?
- 19. 額外的數據是否會降低Python對象的性能?
- 20. Vim滾動性能是否會降低垂直分割窗口的性能?
- 21. NVL()降低性能
- 22. CCSprite降低性能
- 23. 冗餘「使用」會降低性能
- 24. elasticsearch使用random_score會降低性能
- 25. 增加塊大小會降低性能
- 26. RegisterRoutes方法會降低性能嗎?
- 27. WPF渲染性能降低
- 28. 流內在降低性能
- 29. 降低AWS EFS的性能
- 30. 是否繼續打印某些值會降低並行處理的性能
這太含糊了。影響什麼表現?什麼ajax? – SCdF 2008-09-19 04:12:53