Jos*_*son 4 javascript jquery caching
如果先前已选择了元素,则此代码片段将从缓存中返回元素,或者选择,缓存并返回元素.它对于更新从未显着改变的元素的内容(即,用户看到的计数器的父级,其中数字改变但父级不改变)是有用的.代码如下:
var $$ = (function() {
var cache = {};
return (function (selector) {
return cache[selector] || ( cache[selector] = jQuery (selector) );
});
})();
Run Code Online (Sandbox Code Playgroud)
您可以像这样使用它:
$$('#id')
现在......这是怎么回事?如何$$访问jQuery选择器?它与$$开始无关$,你也可以这么做var foo.如何$$映射传递给它的内容selector.我希望看到var selector = argumentName里面$$.另外,对我来说似乎没有$$设置接收参数(例如,函数(输入){}),但它很容易吗?
这段小代码让我感到非常困惑,一些清晰度将会非常受欢迎.谢谢!
这很简单.这是等效的代码,但在解压缩版本中使其更明确:
function generateCachingJQuery() {
var cache = {};
function queryFunc(selector) {
if (cache[selector]) {
return cache[selector];
}
else {
cache[selector] = jQuery(selector); //same as $(selector)
return cache[selector];
}
}
return queryFunc;
}
var $$ = generateCachingJQuery();
Run Code Online (Sandbox Code Playgroud)
如果你注意到,首先你有一个匿名函数 - 我generateCachingJQuery在这里命名- 它返回最终的函数$$.这样做只有内部函数(queryFunc此处命名)才能访问cache变量.剩下的只是一个单行程,我在这里解压缩,以便更清楚它正在做什么.
编辑:要清楚,$$最终是queryFunc在上面的代码,而不是generateCachingJQuery.请注意,queryFunc它selector作为变量.
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |