use*_*156 7 performance jquery caching
我最近阅读了一些关于jQuery性能的文章,我想出了一些奇怪的问题.
可以/应该缓存$(window)吗?
如果我这样做,它会影响resize,scroll,width,scrollTop...等?
可以/应该缓存$(document)吗?
由于我们使用了很多鼠标操作,我应该这样做var doc = $(document);吗?
我可以一直缓存$(this)在一大块代码中吗?
至于var self = $(this);,在什么条件下self可能会有所不同$(this)?
所有三个问题:是的你可以!
Neccessery: 没有
更好的表现:也许吧
你可以尝试做一个基准测试.但缓存的原因不是搜索整个DOM的选择器.查找文档和窗口不是问题,因为它们是2个根变量.缓存$(这个)取决于情况.看我的第二个提示.
始终缓存运行查询的父对象:
var header = $('#header');
var menu = header.find('.menu');
// or
var menu = $('.menu', header);
Run Code Online (Sandbox Code Playgroud)
链接jQuery方法比缓存选择器更好:
$('li.menu-item').click(function () {alert('test click');})
.css('display', 'block')
.css('color', 'red')
fadeTo(2, 0.7);
Run Code Online (Sandbox Code Playgroud)
您经常查询的缓存元素:
var header = $('#header');
var divs = header.find('div');
var forms = header.find('form');
Run Code Online (Sandbox Code Playgroud)
免费的额外性能提示:
选择器适合最慢:
Id > Tag > classes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |