2013-03-08 82 views
4

我通過jQuery .html()方法更改div內容,一旦我從Ajax事件中獲得響應文本。什麼是數據的最大限制可以通過jQuery html()方法設置

有時我會得到更多的響應數據(包含html和腳本以及大約4MB的數據)。使用jQuery .html()方法將響應數據設置爲div內容確實需要更多時間。

有人可以告訴我原因嗎?有沒有解決方案或替代方案?

+3

我覺得你有更大的問題。例如,爲什麼你需要瀏覽器一次加載4MB的html? – Fresheyeball 2013-03-08 04:38:59

+0

我們正在處理頁面中的ajax事件。所以整個頁面數據必須爲每個事件進行更新。 – 2013-03-08 04:41:10

+0

錯誤的答案。你需要認真重新考慮你的策略。 – Fresheyeball 2013-03-08 04:42:14

回答

3

首先,定期下載並插入4MB的HTML永遠不會成爲一個快速的交互式應用程序。這將是一個網絡豬和一個記憶豬,而且表現不佳。

.html()方法沒有技術限制,除了瀏覽器可以訪問多少內存。 .html()是本地.innerHTML財產之上的外殼,沒有特別的限制。

4MB的HTML需要花費大量時間進行下載,而且瀏覽器需要花費大量時間進行解析。這可能是你看到的延遲。時間可能與jQuery無關。經過一小段初始管理,與您設置的實際內容無關,jQuery只設置.innerHTML屬性,瀏覽器處理解析您提供的HTML內容。

現在,如果要替換大量的HTML(例如另一個4MB的HTML),那麼jQuery可能會慢很多,因爲它必須遍歷舊內容中的每個元素,並確保它已經清理了任何與即將被刪除的元素相關聯的jQuery狀態。


你真的應該修復你的頁面設計/應用程序設計,以便你不必使用4MB的HTML。

+0

哦..但是你能告訴我IE和Chrome的瀏覽器限制嗎? – 2013-03-08 04:43:42

+0

我調試了腳本,發現jQuery.html()方法需要更多時間。 – 2013-03-08 04:45:00

+3

@RamaRaoM - 我沒有看到硬編碼的瀏覽器限制。這可能取決於您在給定計算機上有多少內存和交換空間。與桌面瀏覽器相比,移動瀏覽器通常可以訪問的內存少得多。你真的需要修復你的頁面設計或應用程序設計,所以你不使用4MB的HTML! – jfriend00 2013-03-08 04:45:03

相關問題