【问题标题】:How big has to be a string to interrupt the render of an innerHTML?一个字符串必须有多大才能中断innerHTML 的呈现?
【发布时间】:2011-11-08 00:09:41
【问题描述】:

我想知道限制是多少(以字节为单位),或者在什么时候中断通过 innerHTML = $string 或 .append() 渲染 DOM 元素的 innerHTML。

1MB、5MB、10MB?

我想取决于浏览器?

无论如何,我怎么能找到那个限制?

编辑(2011 年 11 月 11 日):

我创建了一个test,它迭代地将一个字符(字母)添加到一个innerHTML,并计算了jsperf 添加该字符的次数。

我在三个浏览器上都有下一个结果:

Avg. of max letters: | Browser
==================================================
15373                | Chrome 7.0.517.44
29148.5              | Firefox 6.0 
14285.75             | IE 8.0 (running in IE 7 mode) 
10257.75             | IE 8.0

我可以假设一个 DOM 元素在 ajax 请求中可以通过 innerHTML 接收的最大字母最多为 10k,以免中断自身的呈现?

还是我完全错了?

【问题讨论】:

  • 每个字符串都会按比例减慢浏览器的速度。您解释为“慢”的可能不是我认为的慢,因此很难找到特殊值。
  • @Pekka 我想知道如何制作一个方法或脚本来获取大样本或其他东西。
  • jsperf.com 可能更大的性能损失是通过一遍又一遍地设置.innerHTML 来构造一个字符串。
  • 如前所述,定义“慢”。这真的是一个“一根绳子有多长”的问题。抱歉,我忍不住了。
  • @JaredFarrish 我创建了一个test,但我不知道如何获取这些结果。我编辑了我的问题。

标签: html ajax innerhtml


【解决方案1】:

最好的方法是分析你的 js 代码。你可以编写一个简单的 JS 代码来迭代渲染它。

然后您可以使用以下内容来查找代码的性能 -

  • 在 chrome 中 - 单击工具 > 开发人员工具 > 配置文件以查看您的 JS
  • Firefox 中的性能 - 使用 Firebug > 控制台 > IE 中的配置文件 - 打开
  • 开发者工具(按 F12)> Profiler

这样您就可以了解代码的性能。您也可以在现实世界的应用程序中使用它来查找瓶颈。

但是,性能稍逊一筹的基准测试也将取决于机器配置(CPU、操作系统等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 2022-01-18
    相关资源
    最近更新 更多