提高jQuery代码性能的方法[选择器角度]
The way to improve jQuery code performance [Selector point of view]
我想了解提高jQuery代码性能的最佳方法。
实际上,我知道如何缓存jQuery选择器不触及DOM多次如下:
最糟糕的方式
$('.selector').text('Text');
$('.selector').text('New Text');
更好的方法
var elem = document.querySelectorAll('.selector');
$(elem).text('Text');
$(elem).text('New Text');
最好的方法
var $elem = $('.selector');
$elem.text('Text');
$elem.text('New Text');
第一个问题:为什么第三个方法比第二个方法快,$(elem)
在这里实际做了什么?
第二个问题:当我在jQuery中使用.data()
时,我访问内部缓存,而不触及DOM,那么JavaScript中的内部缓存是什么?
-
第三是更快,因为你把jQuery元素到一个变量(RAM),所以你可以直接访问它,jQuery不需要解析DOM每次你想要访问它。把它想象成你想编辑一个文件,你不想每次触摸它时都使用搜索引擎,你只需要让它打开。在您的示例中,
elem
是一个HTML元素,并且jQuery发现您与$(elem)
引用的是哪个元素。 -
.data()
方法,不要触摸HTML元素,因为它不需要。它只是将一些数据放入RAM,因为它比每次将数据写入/读取到HTML元素中更快。
相关文章:
- 如何在jQuery的.on()方法中动态更新按钮的ID选择器
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 通过类选择器单独调用方法
- 如何使用jQuery扩展方法为元素或类选择器创建自定义插件
- MVC4和日期选择器:“;0x800a01b6-JavaScript运行时错误:对象没有't支持属性或方法
- 为什么jQuery选择器函数与原生DOM方法相比如此缓慢
- Kendo日期选择器值方法没有't引发自己的变革事件
- 从任何jquery选择器字符串创建元素的最有效方法
- 有没有更好的方法来访问用JQuery选择器选择的第一个元素
- jQuery方法找不到选择器
- 使用:nth-child()选择器和.get()方法之间的性能差异
- 有没有一种方法可以让jQuery日期选择器在没有年份的情况下工作
- 我可以在 jQuery 过滤器方法上使用多选择器表达式吗?
- Rally SDK 2 标签选择器是否有必填字段?对象没有方法'getContextPath'
- 在 IE11 中添加子项时未更新空选择器的解决方法
- 日期选择器 getDate 方法在第二次单击时工作并显示上一个选定的日期
- 使用 prompt() 方法时显示日期选择器
- 警告:失败的 propType:在“维度选取器”中未指定所需的属性“维度名称”.检查“连接(维度选择器)”的渲染方法
- 如何检查是否已在给定的jQuery选择器上调用了方法
- jquery和CSS中最快的选择器方法 - ID与否