什么使脚本在IE8上运行缓慢?

时间:2014-11-12 17:41:23

标签: jquery internet-explorer-8

我有一个搜索过滤器,用于过滤表格中的文本 在firefox和chrome上运行良好,没有错误。

当我在IE8(这是我们的主浏览器)上尝试时,它可以工作,但搜索速度非常慢。 它喜欢一秒钟,但我没有错误或类似的东西。

我的脚本中是否有任何可能使IE8变慢的内容? 我拿出了一些表格列,因为我认为在这里显示它们都会产生影响。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
<script language="JavaScript">
 $(document).ready(function () { 
        //add index column with all content. 
        $(".tablecolors tr:has(td)").each(function () { 
            var t = $(this).text().toLowerCase(); //all row text 
            $("<td class='indexColumn'></td>") 
    .hide().text(t).appendTo(this); 
        }); //each tr 
        $("#FilterTextBox").keyup(function () { 
            var s = $(this).val().toLowerCase().split(" "); 

            $(".tablecolors tr:hidden").show(); 
            $.each(s, function () { 
                $(".tablecolors tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide(); 
            }); //each 
        }); //key up. 
    }); //document.ready
</script>
....
<table   cellpadding="0" cellspacing="0" class="tablecolors" >
      <thead><th >Department</th></thead>
    <tbody>
    <cfoutput query="GetDeptPhone"  >
    <tr>
        <td >#dept_name# )</td> 
    </tr>
    </cfoutput>
    </tbody>


    </table>

1 个答案:

答案 0 :(得分:1)

$.each(s, function () 
{ 
  $(".tablecolors tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide(); 
}); 

您在每次迭代中修改DOM模型,它可能很慢。