是否在使用jquery data()?
读取值时应用了(性能/ cpu)工作量所以...我有几个链接/按钮,类似于以下
<a href='#' class='ui-btn' data-counter='1234'>test</a>
单击链接时,将执行事件。在处理事件期间,我需要多次计数器的值。我是否应该每次都从源读取值(因此,使用$(this).data("counter")
)或者我应该改为
var counter=$(this).data("counter");
到处都有参考计数器?
答案 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);
可能会更快。