Re: [問題] jQuery在IE上
※ 引述《a613204 (胖胖)》之銘言:
: ※ [本文轉錄自 Web_Design 看板 #1Gk4MDks ]
: 作者: a613204 (胖胖) 看板: Web_Design
: 標題: [問題] jQuery在IE上
: 時間: Fri Nov 30 13:35:07 2012
: 想請教一個問題
: 我有段jQuery的code在 chrome, firefox, IE8, IE9
: 速度都滿快的 唯獨在IE6, IE7上面超卡的
: 程式碼 : $("input [name^='abc']").removeAttr('disabled')
^確定這裡有空格嗎?
: 猜想因為是使用 ^= 所以會整個掃過一遍 導致效能比較差
使用 jQuery attribute selector基本上就是全掃
除了新一點的瀏覽器支援 querySelectorAll可能會快一點
name也許可以套用 document.getElementsByName
但是你要 ^=大概就沒機會了
如果要縮小 selector範圍,
用 $("input [name^='abc']", "parentElement selector")
原文一樓的推文感覺是增加更多判斷條件,可能會更慢
以上針對 selector.
但我覺得慢的原因是後面的 removeAttr('disabled')會讓瀏覽器重畫
有興趣請google "browser repaint"
而舊 IE重畫的時間又慢個十幾倍以上
: 加上因為jQuery的code在IE上面的效能本來就不好
IE的 JS本來就比較慢,人不是 jQuery殺的
: 想請問有沒有什麼更快的寫法?
可以嚐試在 removeAttr之前把整個 parent隱藏,remove完之後再顯示;
或是畫一個足夠大的 loading div蓋住整個畫面
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.132.224
※ 編輯: grence 來自: 123.193.132.224 (12/01 03:43)
→
12/01 10:54, , 1F
12/01 10:54, 1F
→
12/01 10:56, , 2F
12/01 10:56, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章