各位TX大家好。我想请教一下,为什么以下代码在ie6 和Chrome都运行得很好。但是在ie9上响应的时间却很久,百思不得其解,望指教!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>  <? 
  for($i=0;$i<100;$i++)
  {
  ?>
<form id="form1" name="form1" method="post" action="">
      <label for="f"></label>
      <input type="text" name="f" value="dfdsfdsf" id="f" />
      <input type="submit" name="d" id="d" value="提交" />
    </form><?
}
?>
</body>
</html>

解决方案 »

  1.   

    Chrome ie6 按确认基本是两秒以内完成,ie9基本要十秒以后。不是循环本身占世界。而是按确定响应的时间很慢!
      

  2.   

    确定? 提交?我想这应该是浏览器对dom内容解析不同的原因吧,ie9可能会遍历所有的form1 而另外两个可能直接读了第一个form1...
    我猜的
      

  3.   

    HTML 中 id 不能重复!
    你有 100 个 id="form1" ,不出问题是人家宽容,出问题是因你违规
      

  4.   

    id我之前试过还是不行。为了方便才写上面的代码。下面这个也是一样
      <? 
      for($i=0;$i<100;$i++)
      {
      ?>
    <form id="<?=$i?>" name="form1" method="post" action="">
          <input type="text" name="f" value="dfdsfdsf" id="<?=$i?>" />
          <input type="submit" name="d" id="<?=$i?>" value="提交" />
        </form><?
    }
      

  5.   

    经过测试不是的。
    代码如下,form1用变量$i代替,响应还是很久
      <? 
      for($i=0;$i<100;$i++)
      {
      ?>
    <form id="<?=$i?>" name="<?=$i?>" method="post" action="">
          <label for="f"></label>
          <input type="text" name="f" value="dfdsfdsf" id="<?=$i?>" />
          <input type="submit" name="d" id="<?=$i?>" value="提交" />
        </form><?
    }
    ?>