Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如果元素不';你没有身份证吗?_Performance_Dom - Fatal编程技术网

Performance 如果元素不';你没有身份证吗?

Performance 如果元素不';你没有身份证吗?,performance,dom,Performance,Dom,我有一个包含无数数千个元素的页面。如果我将带有ID的元素的数量保持在最小值,浏览器的工作效率会更高吗(例如,getElementById),还是没有区别 谢谢。通常,DOM被加载到一个专门的类似树的数据结构中,而树是为快速查找而设计的。因此,一旦页面进入内存,所有搜索都将快速进行。如果文件大小较小,即没有ID=更少字符=更少,则加载/解析速度会更快 字节。但一旦这些都被载入了记忆,就没什么大不了的了 这还取决于浏览器的JavaScript引擎为getElementById()方法实现的算法类型。

我有一个包含无数数千个元素的页面。如果我将带有ID的元素的数量保持在最小值,浏览器的工作效率会更高吗(例如,getElementById),还是没有区别


谢谢。

通常,DOM被加载到一个专门的类似树的数据结构中,而树是为快速查找而设计的。因此,一旦页面进入内存,所有搜索都将快速进行。如果文件大小较小,即没有ID=更少字符=更少,则加载/解析速度会更快 字节。但一旦这些都被载入了记忆,就没什么大不了的了

这还取决于浏览器的JavaScript引擎为getElementById()方法实现的算法类型。我确信Chrome和IE或FF做得不同,反之亦然。我不担心这一部分,因为您无法控制每个供应商如何实现其浏览器


主要的一点是,尽量保持文件大小较小。喜欢短节点名和ID而不是长节点名和ID,因为毕竟,字符串匹配是在解析/搜索过程的某个步骤中发生的。

为什么不试试看呢?编写一段生成包含大量元素的页面的测试代码应该不难。@500 InternalServerError简短的回答可能是因为我从1983年起就不是一个“专业软件人”:)这是一个好主意。至少对于WebCore来说,性能的关键是确保每个id只出现一次(当然,其他任何东西都是无效的html…但这并不能阻止很多人)。如果这样做,则按id查找是O(1)。