2008-09-19 114 views
1

過量使用AJAX會影響性能嗎?在大型Web應用程序的情況下,您如何處理AJAX請求以控制異步請求?Ajax是否會降低性能?

+0

這太含糊了。影響什麼表現?什麼ajax? – SCdF 2008-09-19 04:12:53

回答

9

多餘使用任何東西會降低性能;在必要時使用AJAX可以提高性能,特別是如果替代方案是服務器的完整整頁往返[asp.net術語中的'回傳']

1

AJAX本身(被異步請求)..不一般。

但是,如果您有大量的javascript和標記,並且有大量數據通過您的xmlhttprequests傳輸,那麼您可以看到性能受到影響。這真的取決於你希望你的網站如何運作,如果雕刻正確,任何降級通常都是可以避免的。

0

Ajax只是一個普通的HTTP請求,因爲你的服務器可以處理這些請求,這不會是一個問題。 Ajax的好處在於用戶更快感受到性能,因爲該頁面不必爲每個用戶操作重新加載和重繪。

如果可擴展性是一個問題,我相信您也正在考慮通過向服務器場添加更多Web服務器來水平擴展系統。無論如何,即使是非Ajax的網絡應用也一樣。

-1

如果網站很繁忙,那麼它最終會殺死服務器,除非你在農場。 至於網站本身,它不應該

0

AJAX,像任何技術一樣,根據具體情況以及如何實施,可能是件好事或壞事。如果您對異步過程有特殊需求,那麼它是一個很好的工具。但是,如果你不負責任地使用它,你可能會陷入困境。如果您確實使用它,請嘗試找到一個很好的框架,以完成大部分繁重工作,並瞭解AJAX的一些不足之處... http://learningremix.net/w2007integ/vangoori/2007/01/the_downsides_of_ajax.shtml

1

表現什麼?我假設你的意思是用戶體驗方面的應用程序性能。

Ajax看起來最擅長的是僅在需要時才引起網絡流量。一次下載Honkin'偉大的網頁,而不是以儘可能快的方式下載需要的東西。

然後,如果你做了一些需要更多信息的東西,它就會從網絡中獲取。

這意味着永遠不會下載未使用的東西(如果您設計正確,當然 - 錯誤代碼可以像其他任何環境一樣在Ajax中編寫)。

我更喜歡將數據傳輸的Ajax方法和像jQuery這樣的客戶端庫混合使用,以獲得非常好的界面。

1

根據具體情況,AJAX可能會產生性能開銷,或者實際上可能比不使用AJAX的等功能網站具有更好的性能。

過度使用AJAX可以很容易地讓服務器承載大量繁瑣的請求,並且也可能成爲客戶端CPU的負擔。相反,AJAX也可以用來傳遞HTML和其他代碼的小部分,而不是每個請求的整個頁面,這至少會減少服務器的負擔。

4

這個故事有兩個方面。

AJAX通常會從客戶的角度來提高性能。不是加載整個頁面,而是在需要時從服務器請求較少量的數據。鑑於HTML頁面經常引用許多依賴文件(圖像,CSS,JavaScript等),每個文件都需要從服務器(或緩存)中獲取命中),因此,明智地使用AJAX可以提高客戶端的性能。

在服務器端,問題變成了需要管理更多連接的問題。輪詢應用程序(特別是瀏覽器內聊天)可能真的開始增加服務器的負載,因爲瀏覽器現在更快速地訪問服務器。在一個典型的動態應用程序中(響應是由代碼而不是靜態文件產生的),你可能會開始遇到問題 - 但這些通常是平衡的,因爲你的請求的複雜性往往要低得多(再說一次,你沒有不會生成整個頁面,而是生成頁面的一小部分),因此您的平臺在任何情況下都可能獲得更高的吞吐量。

任何性能問題的確切結果將取決於許多因素,包括當時的服務器,平臺,框架和主要的高潮條件。

我最終的建議 - 着力打造良好的用戶體驗,智能的開發,收集儘可能多的指標,您可以和優化,當你知道你需要它。

0

我同意在這裏的不少其他職位。如果你以智能的方式使用它(即,每30秒不使用ajax),那就沒問題。我在我的網站上使用ajax(並且還有一個js免費版本),並且從客戶的角度來看,ajax版本可以從幾乎相同的速度加載到四倍的速度。這完全取決於網站的設計(圖形和其他內容)以及您正在更新的內容。

不足之處在於,由於您必須加載一些框架(即使您創建了自己的框架),您將會對第一頁的負載稍微慢一些,或者進行任何完全刷新,並且會增加處理加載了一下。但是,這只是因爲阿賈克斯提高了生產力,因此用戶可以提出更多請求/更新