【问题标题】:better keep big amount of html or create on the fly最好保留大量 html 或即时创建
【发布时间】:2023-09-20 22:18:01
【问题描述】:

从性能的角度来看,是在页面中保留大量隐藏的 HTML(大量元素)还是只保留 JavaScript 模型并在需要时重新构建 HTML 更好?

谢谢

【问题讨论】:

  • “隐藏”HTML?请解释
  • 嗯,这取决于,你使用任何框架吗?例如,在 jQuery 中,您可以 detach 来自 DOM 的元素,因此您可以操作它们并在完成后再次插入它们。我确信其他库也有类似的工具。
  • @pattyd 隐藏我的意思是“显示:无”或只是在页面的滚动视图之外。
  • @elclanrs 是的,我使用 jQuery,稍后我将实现一个基于滚动的分离/重新附加系统,但现在我的时间很短(但如果你能建议我一个好的插件为此,我将不胜感激)。所以现在我只想确保拥有数百个 html 结构不会给我带来问题。

标签: javascript performance html-rendering webpage-rendering


【解决方案1】:

页面中的 html 越多,下载 html 文档的时间就越长。此外,当您想要操作 DOM 时,可能不会显示那些额外的元素,但您的代码仍然会命中它,这会增加您的 javascript 代码的执行时间。

您可能想研究模板。有相当多的 javascript 框架(下划线、Handlebars 等)可以轻松地将模型绑定到 html 并生成 html。通常这会导致必须编写少量代码,并且您将 html 的呈现推送到客户端而不是服务器,这将提高服务器应用程序的性能,因为它不必呈现 html 然后传递它下来。

【讨论】:

  • 嗨!在通过接收到的json的ajax请求接收数据后,将第一次生成html,所以我不会被加载时间吓到。我想知道有这么多的 html(我们说的是数百个具有内部 html 结构的元素)是否会降低页面的响应能力。
  • @Bakaburg 在一般情况下,是的。这些元素仍然存在,js 会命中它们,css 匹配/渲染最终会很昂贵。