我們在瀏覽器(IE)中呈現了導致瀏覽器掛起的html頁面。該頁面是通過服務器端腳本生成的(ASP.NET和viewstate已禁用)。加載頁面需要很長時間(因爲我們可以在本地機器上重現它,所以它不是一個問題),並且有時會導致腳本無響應錯誤。在調試問題時,我們發現客戶端的html大小是4.73 MB。文檔準備就緒(jQuery-document.ready)後,還有很多DOM遍歷(使用JQuery)。在加載之後,頁面簡單地掛在任何用戶交互(滾動,鼠標懸停)等上。在加載和任何用戶交互期間看到CPU使用率峯值(25-50%使用)互聯網瀏覽在加載大頁面時無響應
4
A
回答
2
0
我看的第一件事情是瘋狂大尺寸HTML的客戶端接收。對於大量HTML的快速處理,Internet Explorer並不爲人所知,尤其是在以後進行大量DOM遍歷時。這種大樹的DOM處理解釋了CPU高峯。
真的有必要向客戶端發送如此大量的HTML嗎?
0
這可能會也可能不會幫助你,但是隻有當我看到html頁面遠遠接近這個大小時,纔有人將大量數據寫入js數組進行查找。
也許考慮將一些數據(甚至是html,如果它可以很好地分區)移動到Web服務/ ajax調用?無論如何,查找通常要高效得多。
如果它僅僅是原始的HTML,考慮分割它,只有通過AJAX加載下一個部分,當用戶向下滾動/點擊標籤/等
1
如果「腳本不響應」在加載對話框是一個問題至少在較早的IE版本中可能會受到欺騙。用setTimeout
將你正在做的工作分成多個任務。這會導致IE不知道使用了多少總執行時間。
當後臺工作正在進行時,您可以拋出某種「加載」div,這至少會帶來更好的用戶體驗。
+0
檢查http://fitzgeraldnick.com/weblog/35/是一個很好的方法。 – eflat 2012-03-06 21:58:23
相關問題
- 1. 瀏覽互聯網頁面
- 2. 瀏覽器在加載較大文件時無響應
- 3. 使用網頁響應加載網絡瀏覽器
- 4. 互聯網瀏覽器 - 用
- 5. 互聯網瀏覽器
- 6. 加速從互聯網下載網頁
- 7. 當互聯網可用時停止從緩存加載頁面
- 8. 互聯網瀏覽器不斷加載舊的SWF文件?
- 9. Sizset sizcache在互聯網瀏覽器bug
- 10. 互聯網瀏覽器和joomla網站
- 11. 互聯網瀏覽器,Chrome瀏覽器Chrome瀏覽器
- 12. Safari瀏覽器重新加載網頁下載頁面
- 13. 互聯網瀏覽器XMLhttp而不是互聯網controlls?
- 14. 如何滾動互聯網瀏覽器網頁,無需在VBScript腳本
- 15. 互聯網響應時間峯值
- 16. 在後臺加載瀏覽器頁面
- 17. 如何在C#窗體窗體面板上瀏覽互聯網?
- 18. filepicker在IE10和IE11瀏覽文件使頁面無響應
- 19. 下載的頁面大小與瀏覽的頁面大小
- 20. 在頁面加載時,mypic.jpg是否會被瀏覽器下載?
- 21. 互聯網瀏覽器忽略cookies
- 22. 互聯網瀏覽器jquery + SVG
- 23. 互聯網瀏覽器Qt4小部件?
- 24. Android的互聯網瀏覽器性能
- 25. Iframe全屏互聯網瀏覽器
- 26. 接入點慢瀏覽互聯網
- 27. 互聯網瀏覽器的圓角
- 28. ajax互聯網瀏覽器onchange
- 29. ActiveX或BHO(互聯網瀏覽器)
這不是大文件,它是Javascript。你必須優化它,並理解它永遠不會是相同的,但至少它會'功能' – 2010-04-23 09:15:47
我求求不同。這兩者絕對是相關的。文件越大,JS需要處理DOM的時間越長;只是因爲它有更多的節點要處理。 – pyrocumulus 2010-04-23 09:22:59
如果禁用jquery代碼會發生什麼? – 2010-04-23 09:27:21