页面上有一个很大的table,第1列是个多选框,我弄了个单独的多选框来实现全选功能,用的是jquery
$("#tblResult input[name='ckbFav']").attr("checked", ckb.checked);
查出所有name为ckbFav的多选框,设置它的checked属性。发现在IE下面浏览器会假死3-4秒才执行完毕。而FF下面一下子就OK了,根本不需要等待的时间
请教怎么在IE下优化呢?PS:那个表格不能分页,客户要求一页显示,最多会有1000行,20多列数据

解决方案 »

  1.   

    那你的checkbox是多少呢?20000?循环这么多速度肯定会慢的
      

  2.   

    把那个jquery的选择器换成
    var table  =document.getElementById("tblResult");
    var chkBox =table.getElementsByName("ckbFav");
    然后循环,可能效率会有一点提高,但别太指望效果会有多好
    IE速度确实非常烂
      

  3.   

    checkbox是一行一个,也就1000个左右
    但在IE下就是很慢, 会假死不用jquery的选择器我也试过,一样假死
      

  4.   


    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>  
    <script> 
    function checkAll()
    {
    //第一种
      $("input[name='chk']").slice(0,1500).attr("checked",$("input[name='chkall']").attr("checked"));
      //第二种
      /**
      for(i=0;i<$("input[name='chk']").size()/100;i++)
      {
       $("input[name='chk']").slice(0*i,100*(i+1)).attr("checked",$("input[name='chkall']").attr("checked"));
      }
      **/
      //第一种方法感觉效率还高,下面的反而假死了,在IE7下测试的。
    }document.writeln("<input type=checkbox name=chkall onclick='checkAll();' />");
    for(i=0;i<1500;i++)
    {
     document.writeln("<input type=checkbox name=chk />"+i);
     if(i%5==0)
     document.writeln("<br/>");
    }
    </script>