2014-01-24 21 views
2

我正在使用Chosen jQuery plugin。 看看我的小提琴在這裏:http://jsfiddle.net/3XWSe/jQuery插件選擇(增強mutliselects)在Chrome中效果很好,但在Internet Explorer中速度很慢

嘗試在Chrome和Internet Explorer(我測試使用IE版本11)的小提琴。

請注意,點擊Internet Explorer中的多選按鈕時會出現延遲(4秒或5秒),而在Chrome中幾乎沒有延遲(4秒或5秒)。此示例下拉列表列出了德克薩斯州的所有城市,並有近5000個選項。

我打開了chosen.jquery.js和追查問題的這一號召:

Chosen.prototype.update_results_content = function(content) { 
    return this.search_results.html(content); //<-- Problem here when loading the large amount of HTML into the element 
}; 

我注意到,第一次點擊之後,如果我停止this.search_results.html從更新的所有後續點擊,多選將不再響應緩慢。要解決第一次點擊的問題,我需要以某種方式預加載內容。有任何想法嗎?

就如何解決這一問題表現爲IE,或者你知道另一個可比的jQuery插件,可以處理這些大量的在IE選項有什麼建議? (我試過select2和其他一些無濟於事)。

編輯:由於這個問題已成爲流行的一年,我想讓大家知道,我放棄了選擇,現在使用Select2 4.0(其中有優秀的performance with large data and infinite scroll)。它看起來可以讓開發者更容易地修飾和改變它,並在移動設備上工作。

+1

我知道我的答案不是你想聽到的......但不幸的是它的真相。 –

回答

1

由於這個問題已成爲流行的一年,我想讓每個人都知道,我放棄了選擇,現在使用Select2 4.0

  1. 這似乎是選擇最廣泛接受的繼任者。
  2. 4.0版本has excellent performance with large data and infinite scroll
  3. 它看起來可以讓開發者更容易地進行修飾和修改。
  4. 它適用於手機(不像選擇)。
2

那麼,這裏有一些固有的錯誤。那是,IE很爛。

即使有Chrome,我的引擎上的渲染大約需要840ms。對於IE,我們正在談論3276ms。這主要是由於IE呈現DOMFirefox呈現在82ms

這一數字表明IE 10,但即使IE 11顯著DOM相關的問題 enter image description here

引:http://www.tomshardware.com/reviews/chrome-27-firefox-21-opera-next,3534-6.html

不幸的是,你的代碼沒有問題......有您的瀏覽器出現問題。

+1

是的,這太可笑了。 – prograhammer

2

深入探討這個問題,rnoInnerhtml RegEx用於查找jQuery.html()功能中的腳本標記。在大型數據集上滾動時,在那裏使用的RegEx速度非常慢。

/<(?:script|style|link)/i 

對此RegEx的性能調整可能有助於解決問題。

我還調整了選定的腳本和CSS以減少​​發出的html的總大小,這會減少數據量。

+0

好的......讓我看看我是否可以解決這個問題並獲得解決方案。然後我可以回來接受答案。或者如果你有時間,發佈一個替代正則表達式來替換這個修復IE速度問題的正則表達式。我想很多人會喜歡它。不用擔心,謝謝你的洞察力! +1! – prograhammer

相關問題