拾人牙惠的一篇文章。
剛在大神的部落格看到這篇文章,是說有人寫了一個 JavaScript function — replaceHTML 用來取代原本 innerHTML 的用法,根據他的實驗,在 15k 個 element 的情況下(create & destroy)可以加速到 50 倍左右。
我自從用了 Prototype.js 為主要的 JavaScript framework 之後,關於 innerHTML 的部份都儘量會用 Element#update 來作,不過這個函式本身也是直接用 innerHTML 來作(當然差別在於它還會 evaluate javascript),所以也蠻好把這個加速方法放進 Prototype.js 裡的,只要找到下列的 code:
update: function(element, html) { html = typeof html == 'undefined' ? '' : html.toString(); $(element).innerHTML = html.stripScripts(); setTimeout(function() {html.evalScripts()}, 10); return element; },
把其中 $(element).innerHTML 這一行替代成上述文章中的作法就可以了。
歷史上的今天
- Skype for Mac 2.0 Beta 出現了! - 2006
- iTunes 7 - 2006
- 網路相簿比一比 - 2006
- 作研究的方法 (心得) - 2005


0 Responses to “加速 Prototype.js 中的 Element.update”
我想回應