javascript - JS/DOM 优化 : using :after content styling instead of altering innerHTML

标签 javascript html css dom optimization

基本上,假设元素的所有可能内容都是事先已知的,您可以使用一堆 :after 内容样式而不是更改元素的 innerHTML。只需更改类(class)即可获得新内容。

我在 Chrome 中的分析表明这确实提高了一点性能,但我不完全确定,因为成本可能会隐藏在其他地方?而且我不确定这对于 Chrome 之外的其他浏览器是否是个坏主意。对此有什么想法吗?

请注意,此处的上下文是针对每秒 60 帧的模拟/可视化,因此在此上下文中,2 毫秒与 4 毫秒是一个巨大而显着的差异,这可能不是在页面加载的上下文中。

可以在这里看到编号的示例样式:https://github.com/magwo/elevatorsaga/blob/2fa5dc0c0397d0565ce5dcc45c68b19d924a4955/style.css#L290

最佳答案

伪元素设计元素,它们不是内容,它们不出现在源代码中,它们不存在于DOM,它们不会被搜索引擎抓取,你不能选择或复制它们,当然,它们没有 CSS 是不存在的,它是一个 style-sheet.

它可能更快,但那可能是因为它不满足。也许浏览器更改类比更改元素的内容更容易。

问题是,您要更改内容还是内容的视觉表示?

至于实现,我认为将所有可能的内容加载到 CSS 中并不是一种优化,如果您计划为每个新内容请求一个新的 CSS 文件,同样适用改变。

最后,至少现在,您不能为 伪元素 的内容的各个部分设置样式,您不能添加段落、跨度和其他标记。

关于javascript - JS/DOM 优化 : using :after content styling instead of altering innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537801/

相关文章:

javascript - d3 v4 中的中心和旋转投影

javascript - 用于顶级网站拇指的 Firefox Javascript api 扩展

javascript - 网络上的等 Angular 柱状图

javascript - 如何将代码从外部文件链接到 Flash CC 中 HTML5 Canvas 项目的符号?

javascript - 伪类在 IE 中不适用于 jQuery Accordion

javascript - 如何使用 Amplify Auth Class 添加 "remember me"功能?

html - 使用背景图像在 CSS 布局中创建阴影的问题

html - 使用固定高度滚动时的额外空间

html - 如何更改 polymer 元素样式

javascript - 如何让 jQuery Accordion 在页面顶部打开?