【发布时间】:2012-11-18 07:24:15
【问题描述】:
非常基本的问题。
我想知道 jQuery 或原始 JavaScript 是否足够聪明,可以预编译,或者在函数或选择器中缓存变量表达式,如果没有,是否有任何理由阻止他们这样做?
例如
$('#whatever').on('click', function(){
$('#template').click();
});
var n = 0;
for(var i = 0; i < 20; i++){
n = 1 + 1;
$('#whatever').click();
}
console.log(n);
我们是否要在 dom 中搜索 20 次 $('#template') 元素?或者库/引擎是否足够智能以存储指针?
而且,我们是要 1+1 计算机 2 次,还是该表达式被缓存或预编译?
显然,这些都是非常愚蠢的例子,但他们明白了重点。
是的,没有人会(希望)在他们的代码中包含 n = 1 + 1 这一行。
我们可以将代码更改为 `var template = $('#template');在点击处理程序之前,如果它本身不处理它,但我想知道我们/为什么我们必须这样做?
【问题讨论】:
-
哟,读到这里,希望它符合原因
:): lostechies.com/derickbailey/2012/04/10/… & 这个stackoverflow.com/questions/5685671/is-jquery-compiler-possibleJQuery code is "raw JavaScript code" so I'm not sure what a compiler would really buy you. That's like writing a C# compiler which takes C# 4.0 code and emits C# 1.1 code. What's the benefit?:))
标签: javascript jquery caching precompile