2016-09-27 62 views
0

我想要執行以下操作:當用戶連接到個人文件櫃時,他獲取所有數據(數組〜5000行),這些數據將存儲在狀態'allOrders '並且只有在添加新訂單(我使用websockets)時纔會更新(每分鐘)。這是正常的做法(存儲在狀態'大'數據)或更好地做不同?對'大'數據使用'狀態'和REDX

+0

您應該使用正常的分頁機制。你有沒有看過一個網站一次顯示5000條記錄? – Borjante

+0

您可以在該狀態下存儲5000個元素,這不是問題。我想指出的是,將它們全部存儲在起始處並不是真的需要,因爲他幾乎不會看到所有的東西 – Borjante

+0

我使用固定數據表和5000條記錄看起來不錯) https://facebook.github .io/fixed-data-table/example-object-data.html –

回答

1

我發現,當你進入成千上萬的項目時,在瀏覽器中使用數據可能會很慢。即使您優化了渲染,您也可能想要進行過濾和排序以更好地可視化數據,並且只需通過.filter等迭代5k項目就會明顯影響UI的響應能力,並且感覺呆滯。

您的選擇是與數據服務器端一起工作,這當然會引入網絡延遲,這也會影響性能;基本上,你不可能在沒有讓用戶等待某些操作的情況下使用這麼大的數據集。然而,在瀏覽器中使用數據會使瀏覽器在大型操作期間出現「掛起」(即不響應用戶操作),這比等待網絡延遲更糟,這不會鎖定瀏覽器..所以, 。

我已經成功處理https://github.com/bvaughn/react-virtualized渲染大型列表。它與您提到的庫相似,只是呈現了視圖中的內容。你絕對不想嘗試渲染5k的東西。

+0

我同意你的看法,但正如我上面所寫,我使用https://facebook.github.io/fixed-data-table/example-object-data.html和fixed-data-table只呈現視圖中的內容。 –

+0

是的..我也評估了Facebook的組件,並發現它不適用於IE,這是當時對我們的要求。如果它適合你,雖然這很好。 – John

+1

感謝您的幫助! –

相關問題