Jquery:为什么要为你只引用一次的东西创建一个变量?

时间:2010-07-15 10:11:53

标签: jquery

所以对于这样的事情:

Jquery的:

$(document).ready(function(){
    var container = $('.rotate_container');
    var images = container.find('img');
    container.everyTime(10, function (){
        images.each(function() {
            container.animate({scrollTop: $(this).offset().top - 165}, 2000).delay(1000);
        });
    });
});

制作变量“容器”和“图像”有什么意义?如果它们每个只使用过一次,那对它有什么帮助呢?

感谢。

3 个答案:

答案 0 :(得分:5)

如果你,肯定,只在代码中访问一次元素,当然 有意义缓存它。

缓存DOM elements的原因是访问它们非常昂贵。

ECMAland DOMland 之间越过bridge是最昂贵的部分。你真的可以将它与一座桥进行比较,每次越过它时你必须付出收费。因此,将这些东西保存在您已经支付过费用的ECMAland中是有意义的。每次需要时都不要过桥。

在这张照片中你会注意到,如果你只过一次桥就无所谓了。

答案 1 :(得分:0)

你可以将images.each替换为container.find('img')。每个,但容器将被引用3次(.everytime,.find('img')和.animate)。

答案 2 :(得分:0)

这些变量基本上修复了每个定时事件的值。如果你考虑一下,图像可能会改变,标记可能会被修改,等等。这会修复后续代码的DOM元素集。是否合适取决于申请。