0

我在 IE7 中使用 HTTPWatch 来确定为什么我的一个页面加载如此缓慢。这只发生在 IE7 中,不会发生在任何其他浏览器中。我把它缩小到一个 jquery 行,它在两个容器上设置了一个边框。

当我注释掉第二行时,页面在 IE7 中的加载速度明显更快 - 与 7 相比为 2 秒。

  $('.ccl, .ccr').css({'min-height':maxHeight});
  $('.ccl, .ccr').css({'border':'1px solid #ccc'});

我以前从未经历过这种情况,并想知道是否有其他人看到过这种情况以及为什么会发生这种情况。代码没有问题,它可以工作,只是慢慢地。

4

2 回答 2

1

尝试这个?

var cached = $('.ccl, .ccr');
cached.css({'min-height':maxHeight});
cached.css({'border':'1px solid #ccc'});
于 2012-09-06T00:19:51.410 回答
0

如果您指定元素名称,则 IE7 可以丢弃任何不是 div 的内容(尽管这在现代浏览器中对性能的影响很小)。将您的 CSS 属性也放在一个对象中。

$('div.ccl, div.ccr').css({
    'min-height':maxHeight,
    'border':'1px solid #ccc'
});

更好的是,如果页面的元素是唯一的(看起来像.ccl并且.ccr是列名),您可以添加一个 id,这将是最快的解决方案:

$('#ccl, #ccr').css({
    'min-height':maxHeight,
    'border':'1px solid #ccc'
});

如果您已确定添加边框的问题,然后添加一个类并让您的样式表处理它:

/* styles.css */

.ccl.border, .ccr.border {
  border: 1px solid #ccc;
}

/* site.js */
$('div.ccl, div.ccr').css('min-height', maxHeight).addClass('border');
于 2012-09-06T00:35:17.937 回答