将变量分配给$(this).data("无论")还是否?

时间:2016-04-13 14:17:18

标签: jquery jquery-data

是否在使用jquery data()?

读取值时应用了(性能/ cpu)工作量

所以...我有几个链接/按钮,类似于以下

<a href='#' class='ui-btn' data-counter='1234'>test</a>

单击链接时,将执行事件。在处理事件期间,我需要多次计数器的值。我是否应该每次都从源读取值(因此,使用$(this).data("counter"))或者我应该改为

var counter=$(this).data("counter");
到处都有参考计数器?

2 个答案:

答案 0 :(得分:1)

这完全取决于您,但每次致电$(this).data("counter")时都需要工作。它可能不是重要,但从长远来看,将它抓到本地将更短,并保存奇数微秒。

请注意,除非您确实需要data的功能,否则您可能需要使用attr+$(this).attr("data-counter")(开头的+从字符串转换为数字,data为您提供全数字字符串)。 data data-*属性的访问者,它是该元素的jQuery数据缓存的访问者。第一次在元素上调用它时,它会创建缓存并从元素上的所有data-*属性中填充它,然后保留它们在那一刻的副本。 (并将其用作 setter 不会更改属性,也不会在元素更改data的副本上使用data后更改属性值。)attr 只是属性的访问者。

答案 1 :(得分:0)

如果将值存储到变量中:

var counter=$(this).data("counter");

然后:

counter++;
...
counter++;

然后在最后再次更新您的数据属性:

$(this).data("counter", counter);

可能会更快。