我有某種的webapp在這裏,這當然包含的JavaScript和jQuery。 在載入時,函數在文本的每個字母周圍包含span
- 約150個字母。然後用戶可以選擇字母,並在確認後顯示結果。一切都很好,順利,只有最後一部分真的殺死了表演。的JavaScript/jQuery的 - 性能問題
結果保存在三個數組。點擊後,會觸發爲點擊元素添加類的函數(這是確認)。
我做這樣的(3次,爲每個陣列):
$.each(myArr, function(i, v){
$(v).addClass("my-class");
});
是這樣工作的,而是因爲我操作DOM很大程度上它殺死的性能。
我在MacBook上使用2.26 GHz和2 GB RAM,我不能夠在類已被添加後運行一個簡單的提示或任何東西。特別是如果一個陣列真的滿了,這會對性能產生負面影響。
我已經嘗試優化腳本。我緩存了多次使用過的每個DOM對象,但這在每種情況下都是不可能的(我認爲...)。我還使用了諸如.my-class
和#my-id
而不是span[class = my-class]
和span[id = my-id]
的選擇器來加速所有操作。只有最後一個數組部分是壞的。
有什麼辦法來優化這部分$.each
?緩存或攻擊?或者可能使用其他技術?
我不希望腳本超快速 - 但在顯示結果後添加簡單的工具提示應該是可能的。
如果'myArr'是一個jQuery集合,您應該可以執行'myArr.addClass('my-class')'。另外,你能否提供一個jsFiddle來說明減速? – millimoose 2012-07-16 19:58:12
數組包含什麼? – Bergi 2012-07-16 19:58:26