2010-06-18 29 views
7

我正在使用名爲Tablesorter 的jQuery插件在我的一個應用程序中對客戶端進行日誌表排序。我也在使用tablepager加載項。javascript表格排序/分頁(客戶端)。有多大太大?

我真的很喜歡客戶端排序和尋呼爲聚會帶來的響應能力。我也喜歡你不必重複訪問Web服務器或數據庫。

但是我可以看到,在時間裏,我顯示的日誌可能會變得相當大。我敢肯定,客戶端分頁和排序將不切實際。這種技術在自身的重量下開始崩潰會有什麼意義? 500條記錄? 2000條記錄? 10,000條記錄?

編輯: 簡而言之,您將使用什麼標準來確定是否要使用客戶端排序/分頁而不是服務器端分頁?預期結果的大小是否會影響您的決定?轉折點在哪裏?

+0

除此之外,根據記錄的大小,每次請求表時都必須將大量數據傳輸到客戶端;這可能會花費很多帶寬,並且取決於連接速度和時間。 – 2010-06-18 01:33:08

回答

3

不過,我可以看到,假以時日,該 日誌,我可以顯示增長得非常大 。我確信有一個點 客戶端分頁和排序 將是不切實際的。 什麼意思 這個技巧在它自己的體重下會開始崩潰 ? 500條記錄? 2000個記錄? 10,000條記錄?

這實際上取決於很多不同的東西,如表格大小的列數以及該人使用的瀏覽器和版本。在看到真正的問題之前,我通常可以整理1000條記錄。如果你開始接近這個數字,我肯定會開始考慮服務器端排序。使用AJAX,服務器端排序可以非常高效,並且具有體面的用戶體驗。

最好的方法是看你的特定情況就是試試看。儘管瀏覽器並不是真正用於處理像這樣的大量數據仍然可以處理的數據。用戶體驗會很糟糕,但它可以處理的記錄數量非常高。

+0

事實上,它幾乎完全依賴於客戶端的內存大小和硬件速度(甚至是瀏覽器JavaScript引擎的速度)。 – 2010-06-18 01:34:40

3

當瀏覽器或客戶端主機無法使用時,此技術可能會崩潰。

使用服務器端分頁來防止這種情況。

我首先會考慮發送給客戶端的數據量,從而導致加載時間因子。

說如果表中的每一行都是200字節,並且我向客戶端發送10000行(允許客戶端排序和分頁),則發送200 * 10000 = 2,000,000字節,又稱2 MB。這需要瀏覽器花一些時間從服務器加載它,然後一段時間讓排序插件對所有內容進行排序,然後再分頁進行分頁。

事實上,隨着需要將所有行發送到客戶端,您的服務器負載將會增加。

正常情況下,Javascript需要處理大量的數據和迭代,瀏覽器(Firefox或類似的)會鎖定,看起來好像崩潰了。

如果您使用服務器端排序+分頁,客戶端將看到準確和最新的信息。也可以說你有相同的10000行,每個200字節。你每頁有20行。您只發送20 * 200 = 4000字節,這是4 KB,相對較小,可以由瀏覽器/服務器處理。

+0

我正在尋找一個答案,給了我更多的指導。我會編輯我的問題來澄清這一點。 – Aheho 2010-06-18 01:29:03

+0

已更新。感謝您獲取更多信息;這就是我們所需要的。 – mauris 2010-06-18 01:38:49

3

幾百個可能是好的,具體取決於列數。當你處理數量爲10^3(數千)的數據時,這肯定會崩潰。

這些都是我在不同瀏覽器中的實證結果,但我通常在健壯的硬件上。我會將您的數據集限制爲數百個。