2013-07-15 127 views
0

我正在構建一個使用jQuery File Tree的網站。有時來自服務器的AJAX響應是巨大的:900 KB,70000'文件'(我沒有真正顯示文件)。用javascript處理巨大的ajax響應

當然,顯示這會給JavaScript(客戶端)帶來很大的壓力,並且恰巧瀏覽器因此而死機。

這將有什麼可能的解決方案?你可以「告訴瀏覽器」期待一個很大的負載(就像你在PHP中使用max_execution_time和memory_limit一樣)。 另一個想法是將請求分解爲幾個更小的請求。這樣做會需要很多編碼,我想知道:甚至可以工作嗎?瀏覽器可以處理如此大量的DOM節點嗎?

有關如何處理此問題的其他想法?

+1

也許你可以開發它,這樣只有下載樹的根開始,然後當分支被打開時分支的內容被下載。要麼是這樣,要麼分割你的數據的其他方式。 –

+0

_你可以告訴瀏覽器預計會有很大的負載嗎?_編號 –

+0

如果數據變得太大,你可以用ajax獲得部分響應,然後停止生成html – karaxuna

回答

2

我認爲更好的方法來解決這個解決方案是一個「按需」或「延遲加載」的解決方案。只顯示文件樹的根,然後當用戶嘗試展開任何節點以查看其子節點時,通過AJAX抓取數據。

這樣你就不一次加載所有的數據,而是一點一點地加載數據。

+0

這就是我正在做的,這就是jQuery File樹插件是建立。然而,有些孩子真的很大 – user2583501

+0

我想你將不得不實施某種分頁解決方案。將孩子分成多個部分,然後逐個請求他們。 –