max*_*mus 6 javascript performance jquery method-chaining
编写单独调用jQuery函数或使用单个链是否更快?如果一个额外的解释为什么一个比另一个更快,将不胜感激:-)
一个例子:
$('#blah_id').niftyjQueryMethod1().niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
更快/更慢
$('#blah_id').niftyjQueryMethod1();
$('#blah_id').niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
在您的示例中,链接更快.
// Example 1
$('#blah_id').niftyjQueryMethod1().niftyjQueryMethod2();
// Example 2
$('#blah_id').niftyjQueryMethod1();
$('#blah_id').niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
在示例1中,创建jQuery对象($('#blah_id'))的调用只进行一次.在示例2中,它被制作两次.这意味着第二次通话会更慢.
如果您不想将它们全部放在链中,可以将选择缓存在变量中:
var blah = $('#blah_id');
blah.niftyjQueryMethod1();
blah.niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
假定该方法不影响哪些元素存在于选择的选择(例如,例如parent,find或filter做),这将是几乎完全一样,例如1.
这个:
$('#blah_id').niftyjQueryMethod1().niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
可能比这更快:
$('#blah_id').niftyjQueryMethod1(); $('#blah_id').niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
但不是因为链接.这是因为选择器查找需要付出代价.
这个:
var $blah = $('#blah_id');
$blah.niftyjQueryMethod1();
$blah.niftyjQueryMethod2();
Run Code Online (Sandbox Code Playgroud)
可能与第一个例子的速度没有明显的差别.
| 归档时间: |
|
| 查看次数: |
1160 次 |
| 最近记录: |