Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
setting.height()和嵌套jquery在IE中永远使用,但在chrome中不使用_Jquery_Performance_Cross Browser - Fatal编程技术网

setting.height()和嵌套jquery在IE中永远使用,但在chrome中不使用

setting.height()和嵌套jquery在IE中永远使用,但在chrome中不使用,jquery,performance,cross-browser,Jquery,Performance,Cross Browser,我有一些jquery,在chrome中运行起来就像什么都没有,但IE一直被它卡住。我有一个带有一些静态列的表,这些列通过绝对定位是静态的。我想确保它们与父行垂直展开,所以我有下面的代码来展开它们。它是有效的,但在IE中需要永远的时间。我可以改变什么来提高IE中的性能? $("#grdSchedule tr").each(function(i){ $(this).find(".stickyCol").height($(this).height()); }); 编辑

我有一些jquery,在chrome中运行起来就像什么都没有,但IE一直被它卡住。我有一个带有一些静态列的表,这些列通过绝对定位是静态的。我想确保它们与父行垂直展开,所以我有下面的代码来展开它们。它是有效的,但在IE中需要永远的时间。我可以改变什么来提高IE中的性能?

    $("#grdSchedule tr").each(function(i){
        $(this).find(".stickyCol").height($(this).height());
    });
编辑:.height()是问题所在

到目前为止,这是我一直在尝试的方法,但没有多大帮助

    var stickyCols = GetStickyColumnCount();

    $("#grdSchedule > tbody > tr").each(function(i) {
        thisRow = $(this);
        thisRow.children().slice(0, stickyCols).height(thisRow.height());
        //thisRow.children(".stickyCol").height(thisRow.height());
    });
似乎每次调用height()都是在IE中拖累它的原因。我将提出一个新的问题,可能需要一些css帮助,所以我不需要首先运行这个脚本。但是,如果有人能在IE中添加任何加快速度的东西,那就太棒了

如果有人想知道,对于我庞大而丑陋的生产数据网格,chrome只需2.5秒,IE只需20秒

我想也许我应该尝试用css而不是javascript来解决这个问题

$("#grdSchedule tr .stickyCol").height(function(i,height){
    return $(this).closest('tr').height();
});

我要尝试一个标准的javascript循环,但是我讨厌在我的页面上有所有额外的代码如果
。stickyCol
是直接的子对象,那么就改用
.children()
。并且,缓存
$(this)
。此外,您还应该提供一个示例,无论如何,这种依赖于浏览器的优化最好尝试一下。到目前为止,我们还不知道您的数据的大小。我可以有一个有一百万行的
,或者一个只有两行的
。这张表的数据很疯狂,需要一段时间才能做出相应的修改。想象一下,一个日程表左侧有一堆粘性的员工列,右侧的每个单元格中有一堆疯狂的日程表详细信息html,其中每个非粘性列都是一个日期。哦,是的,还有数百名员工。。。因此,一个大桌子充满了很多元素。如果建议的解决方案不能解决我的问题,我今天晚些时候会做一把小提琴。这就是高度!设置高度的嵌套查询不能很好地处理IE。。。问题不在于找到元素。。。我想我可能需要提出一个新问题。您是否考虑过使用$.css();方法而不是$.height()?我不知道,但它可以更快。类似于:
thisRow.find(stickyCols.css('height',thisRow.css('height'))。编辑:另外,
$.find()
可以非常快,而不是使用子级或切片(这里有一些有趣的指标:)