jquery - 以这种或另一种方式编码是否有性能优势?

标签 jquery

我使用的是 jQuery 1.7.1

我尝试编写此代码是为了提高可读性和性能。在下面两种情况下,哪一种表现更好,为什么?

// BLOCK ONE
var DivHeight = 0;
$(".PC_SeriesDiv").each(function() {
    var ThisDivHeight = $(this).height();
    if (ThisDivHeight > DivHeight) {
        DivHeight = ThisDivHeight;
    }
});
DivHeight = DivHeight + "px";
$(".PC_SeriesDiv").animate({height: DivHeight}, 250);

// BLOCK TWO
var DivHeight = 0;
var PC_SeriesDiv = $(".PC_SeriesDiv"); 
PC_SeriesDiv.each(function() {
    var ThisDivHeight = $(this).height();
    if (ThisDivHeight > DivHeight) {
        DivHeight = ThisDivHeight;
    }
});
DivHeight = DivHeight + "px";
PC_SeriesDiv.animate({height: DivHeight}, 250);

我的问题实际上归结为这样做是否有任何好处:

   var PC_SeriesDiv = $(".PC_SeriesDiv"); 

如有建议,我们将不胜感激。谢谢!

最佳答案

是的,保留对 jQuery 集合的引用可以提高性能。 Reference.

习惯上为保存的 jQuery 集合添加 $ 前缀。 ,所以你可以这样做:

var $PC_SeriesDiv = $(".PC_SeriesDiv");

此外,如果 HTML 中的所有元素的类为 PC_SeriesDiv是相同类型(即 <div> ),将选择器设置为 $("div.PC_SeriesDiv"); 会更有效

关于jquery - 以这种或另一种方式编码是否有性能优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284362/

相关文章:

javascript - 阶段之间的 fullpage.js 初始化事件

Javascript 异常(仅发生在 PC 上的 FireFox 4.01 中)

jQuery 选择具有特定 CSS 的元素

Jquery在包含html字符串的变量中添加类

jquery - 使用 Rails 4 的排名模型

javascript - 无法读取jquery中未定义的属性 'join'

jquery - 更改输入元素时,使用动态自定义数据在 fullcalendar 中渲染事件

jquery - Ajax添加了ko.applyBindings后添加的HTML元素不与knockoutjs绑定(bind)

javascript - Div根据图像调整大小点击

jquery - 如何拒绝删除/重命名/移动jsTree中的根(或其他)节点?