我可以在jQuery中缓存$(window)和$(document)吗?

前端之家收集整理的这篇文章主要介绍了我可以在jQuery中缓存$(window)和$(document)吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近阅读了一些关于jQuery性能文章,我想出了一些奇怪的问题.

>可以/应该缓存$(窗口)吗?

如果我这样做,它会影响调整大小,滚动,宽度,scrollTop …等?
>可以/应该缓存$(文件)吗?

由于我们使用了很多鼠标操作,我应该做var doc = $(document);?
>我可以一直在一大块代码中缓存$(this)吗?

至于var self = $(this);,在什么条件下,self可能与$(this)不同?

解决方法

所有三个问题:是的你可以!

Neccessery:没有

更好的表现:也许吧

你可以尝试做一个基准测试.但缓存的原因不是搜索整个DOM的选择器.查找文档和窗口不是问题,因为它们是2个根变量.缓存$(this)取决于情况.看我的第二个提示.

始终缓存运行查询的父对象:

var header = $('#header');

var menu = header.find('.menu');
// or
var menu = $('.menu',header);

链接jQuery方法比缓存选择器更好:

$('li.menu-item').click(function () {alert('test click');})
                     .css('display','block')
                     .css('color','red')
                     fadeTo(2,0.7);

您经常查询的缓存元素:

var header = $('#header');
var divs = header.find('div');
var forms = header.find('form');

免费的额外性能提示

选择器适合最慢:

Id > Tag > classes

猜你在找的jQuery相关文章