javascript - 什么会使用更少的CPU刻度: insertBefore vs innerHTML?

标签 javascript jquery performance google-chrome browser

我有数百个项目列表,需要定期 ajax 更新并在移动设备(主要是移动 wekbkit 浏览器)上显示。对我来说,生成整个列表服务器端并使用 innerHTML 更新用户屏幕更容易。 。该列表主要是图片缩略图。我不希望屏幕闪烁太多,或者对他们的小型移动 CPU 造成太大的拖累。我的问题是:更新 <ul> 时什么表现更好列表,insertBefore + 客户端排序或innerHTML整个列表?

最佳答案

最好的答案是:以两种方式编写并在目标浏览器上对其进行配置。

但是,在我之前的实验中,我通常发现在进行重大更新时,innerHTML 明显比通过 DOM 界面进行操作要快。这是有道理的:从根本上来说,浏览器将 HTML 解析为其内部结构并显示结果。这是他们存在的理由,并且他们为此进行了高度优化。相比之下,大量 DOM 调用需要通过 API 多次跨越 JavaScript/浏览器内部接口(interface),而该 API 可能适合也可能不适合浏览器的内部结构。当然,今天的情况与几年前有很大不同; DOM 更新比以前更加常见且更快。

但同样,这些东西根据您正在做的事情和目标浏览器的不同而变化很大,因此最好每种方式创建一个代表性测试并根据经验进行观察。

关于javascript - 什么会使用更少的CPU刻度: insertBefore vs innerHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10684005/

相关文章:

javascript - 无法使用 json 对象通过 Javascript 显示动态表

javascript - 当使用 empty() 或 html() 时,jQuery "' 事件“为空或不是对象”错误

algorithm - 在一维数组中查找有界最近邻

jquery - JCrop 得到裁剪宽度和高度

php - 快速高效的 PHP Session

performance - childNodeWithName在SpriteKit中的表现如何?

java - 用于 eclipse juno 的 AngularJs 插件

javascript - 为什么无法 Array.prototype.pop.call() 字符串?

javascript - 如何从 Node.js 中的 URL 加载外部 js 脚本

javascript - 用于在 Rails 中无限滚动的 jScroll