通过 Dom 方法提高 innerHTML 性能
2008-05-20 09:57
253 查看
function replaceHtml(el, html) { var oldEl = typeof el === "string" ? document.getElementById(el) : el; /*@cc_on // 原始的 innerHTML 在 IE 中的性能好一点 oldEl.innerHTML = html; return oldEl; @*/ var newEl = oldEl.cloneNode(false); newEl.innerHTML = html; oldEl.parentNode.replaceChild(newEl, oldEl); /* 一旦我们从 DOM 上移除老的元素,则返回新的元素引用。*/ return newEl; };
此方法大大提高了 innerHTML 在 Firefox 和 Safari 上的性能。replaceHtml() 在 Firefox 2.0.0.6 里 destroy 与 replace 的速度各快了 473 倍以及 50 倍。而在 Safari 3.0.3 beta 上则是 create 100 倍,replace 50 倍。
对于 Opera 也依然有性能提高,只是提高幅度没有上面两种浏览器惊人而已,
唯在 IE 中,则原始的 innerHTML 的方法更效率点。
扩展阅读:
《When innerHTML isn’t Fast Enough》
《innerHTML and DOM Methods》
相关文章推荐
- 通过 Dom 方法提高 innerHTML 性能
- 通过 Dom 方法提高 innerHTML 性能
- 通过 Dom 方法提高 innerHTML 性能
- innerHTML对比DOM方法,哪个性能好?有什么区别?
- 五种提高 SQL 性能的方法
- 五种提高 SQL 性能的方法
- 提高HTML5 canvas性能的几种方法!
- 五种提高 SQL 性能的方法
- 充分利用ASP.NET的三种缓存提高站点性能的注意方法
- 用什么方法提高.NET网站的性能<转载>
- ArraylList的扩容机制和使用ensureCapacity()方法提高性能
- 提高 SQL 性能的方法
- asp.net提高网站性能的方法
- 五种提高 SQL 性能的方法
- 使用标准数据绑定语法代替 DataBinder.Eval 方法以提高性能
- yii2通过apache重定向,提高10倍性能
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- 提高ASP.NET应用程序性能的几招方法
- 五种提高 SQL 性能的方法
- 五种提高 SQL 性能的方法