2009-07-09 22 views
0

摘要的Jquery在IE7很慢

jQuery是用於檢索通過get()調用的搜索結果。渲染大量結果時沒有問題,但在渲染部分結果時,IE7在渲染前一直掛起5-30秒。

問題

get()調用jQuery的成功執行。數據上沒有eval()或urlencode或解碼,因爲數據是html。大面積的內容通過

$('#content').html(data); 

替換爲數據中#content存在包含內容的夫婦隱藏的div被移動到另一個areay外#content。 (這些都是通過AJAX檢索搜索結果,並且麪包屑需要在另一部分將被更新)

$('#breadcrumb').html($('#content #breadcrumbcontainer').html()); 

上述工作相當不錯,在Firefox和其他瀏覽器。

在沒有腳本調試器的情況下使用IE 7.0.6001.18000的Vista計算機上進行測試在所有情況下都很快且正常。

在帶有MS腳本調試程序的7.0.5730.11的XP上進行測試的速度很慢。我只能猜測在這一點 - 它看起來像它有事情做與

  1. 腳本調試安裝
  2. 無效XHTML嚴格
  3. 造成一些模糊的時間 - 我見過這裏提出的修正使用setTimeout()
  4. 也許jquery隊列是需要的?
  5. 上述

更多代碼的組合可以提供,但它確實混雜的表現實在是太糟糕(30秒渲染),當它在IE71秒沒有腳本調試。

任何關於原因的建議顯然將被讚賞。

- 更新 -

的tskmanager現在顯示IEXPLORER.EXE CPU使用率,同時它空轉。 只是掛起,就像暫停。

- 更新兩個 -

已證實,IE7沒有微軟的腳本調試器,IE7慢

範圍:4秒至2:19 平均:33秒 位數: 18秒 標準偏差:37秒

+0

您是否使用超時等待上一個任務完成?在這種情況下,肯定使用jQuery的隊列,儘管我不確定這與您遇到的大規模放緩有什麼關係。 – 2009-07-09 04:07:09

+0

網絡的非CPU延遲問題,但你永遠不知道。嘗試一塊一塊地去除,直到你找到孤立的罪魁禍首。現在這是一個猜測遊戲。 – 2009-07-09 04:14:21

回答

1

問題出在我忽略的一個事實 - 那就是搜索結果,每一個都包含一個fla sh對象。去除閃光物體使得速度與FF相當。

現在使用swfobject在$(document).ready()之後加載閃存,問題消失。

行爲不一致,因爲IE7會緩存flash對象 - 所以有時候性能會很正常。