在性能下降之前,浏览器可以安全地处理多少个元素ID?

| 使用元素ID \是javascript“获取”元素的最快方法。是否有经验法则或最佳做法指南,说明在预期浏览器性能开始下降之前应使用这些ID中的多少?     
已邀请:
ID本身就是一个属性值。唯一的“性能”问题是浏览器必须下载的额外位和字节。从JavaScript POV来看,DOM中的元素越多,遍历它所花费的时间就越长,但这与您正在使用的ID的数量没有直接关系。 编辑: 要澄清您的JS是否是这样的:
document.getElementById(\"myID\")
HTML是否看起来像这样并不重要:
<div id=\"div1\">
  <div id=\"div2\">
    ...
      <div id=\"div999\">
        <div id=\"myDiv\">
或这个:
<div>
  <div>
    ...
      <div>
        <div id=\"myDiv\">
这两个示例的JS应该运行相同。     
复杂的页面意味着需要下载更多的字节,也意味着JavaScript中的DOM访问速度较慢。例如,当您想添加事件处理程序时,如果在页面上循环访问500或5000个DOM元素,则会有所不同。 大量的DOM元素可能是一种症状,即页面标记需要改进某些东西,而不必删除内容。您是否使用嵌套表进行布局?您是否只为了解决布局问题而投入更多资源?也许有一种更好,更语义正确的方式来进行标记。 YUI CSS实用程序对布局有很大帮助:grids.css可以帮助您整体布局,fonts.css和reset.css可以帮助您消除浏览器的默认格式。这是一个重新开始并思考您的标记的机会,例如,仅在语义上有意义时才使用s,而不是因为它呈现了新行。 只需测试Firebug的控制台即可轻松测试DOM元素的数量: document.getElementsByTagName(\'* \')。length     
我们已经使用jQuery Validate进行了超过1000个字段的表单(不要问),以进行客户端验证。这包括验证需要哪些字段,检查每个字段的数据类型,基于某些条件显示/隐藏字段组以及在输入数据时跨多个字段运行计算。 只有MSIE会以这种速度放慢速度。 Firefox和Chrome浏览器“立即”运行验证。 MSIE最终显示“长时间运行的脚本”对话框。昨晚通知我,现在需要其他字段。     

要回复问题请先登录注册