2011-04-14 103 views
3

我正在拉取服務器上生成的JSON文件,每5分鐘左右(現在大小約爲10 KB,隨着它投入生產將會變得更大)。一旦文件被拉出,我就有各種Javascript可視化API,我需要插入這些數據。Javascript前端與C後端的性能

我的後端在C中,我使用Jquery/Javascript進行可視化。

以下是我擁有的兩種方法: 1. a。每5分鐘從服務器獲取整個JSON數據(> 8KB)。 b。根據JavaScript API的要求解析數據,使用Javascript並提取所需的信息。 (不同的可視化API需要不同的信息子集) c。顯示可視化

或 2. a。處理後端自身的數據並根據JavaScript API提取信息並將其存儲在後端 b。讓每個javascript api獨立進行Ajax調用並獲取他們自己的數據並顯示它

我的問題是,以上兩種方法中的哪一種會產生更快的輸出。 在這種情況下,C中的後端會比Javascript中的前端更快嗎?

回答

0

我不清楚你正在嘗試做什麼。無論哪種方式,我認爲業務邏輯必須包含在服務器上,並且表示邏輯(jQuery/JavaScript或任何正在使用的庫)必須嚴格在客戶端上運行。

2

可以給出的唯一答案是基準兩種方法。有太多的變數可以給出明確的答案。

正在使用的瀏覽器會影響客戶端的運行時間,因此根據您需要支持的內容,您需要牢記這一點。

需要分析的數據結構有多複雜可能會影響客戶端性能。

如果每個用戶的數據是相同的,那麼您可能會在服務器上解析並緩存數據。如果不同,您可能需要客戶端來處理這個問題。

0

你的第二種方法會更快,可能會更好。既然你說過「讓每個javascript api ...得到他們自己的數據」,看起來方法1將表明發送一個客戶超過它的需要。

0

取決於您的插件將產生多少請求。如果不需要進行任何計算,並且所有操作都是在第一次調用中完成的,並且您的任務僅限定每個數據塊的位置,則選項1是最快的。請求是昂貴的。

另一方面,如果你打算用javascript來計算值,這取決於這些計算的重要程度。在這種情況下,您將得到一個更好的答案,做一個基準測試:

要澄清,在第一種方法中,您的瓶頸將是計算。第二,網絡/客戶端的瀏覽器速度花費的時間。

考慮將所有結果分組到一個JSON結果中,並將它們傳遞給插件。

並考慮過,如果你在服務器上,也許你可以使用緩存來贏得一些處理時間(和我說,也許是因爲它取決於你使用什麼樣的算法/數據源)

希望它有幫助,祝你好運! :-)

0

你應該知道的第一件事是你的具體設置將會對這個系統的性能產生更多的影響,所以唯一確定的方法就是對兩種方法進行基準測試。也就是說,像C這樣的編譯語言幾乎總是比JavaScript這樣的解釋語言更快。