我有一个基于网络的应用程序,它非常依赖于jquery / javascript,它有时候有点慢。经常完成的事情之一是对网格(jqGrid)的更改,这意味着每次我使用jQuery来选择该对象时,即:
function load_editor() { $('#listview').jqGrid(do_stuff); }
我认为简单地存储对$('#listview')的引用 - 因为它在六个函数中使用 - 会更快。那么设置它是否有任何缺点:
listview = $('#listview');
function load_editor() { listview.jqGrid(do_stuff); }
这似乎是常见的对象已经存在于内存中,并且不会在每次使用时产生查找的惩罚。以这种方式构建是否有任何缺点?
(我知道在我的例子中,我抛弃了一个全局。它完全封装在实际项目中的一个对象中,我只是用这些例子来说明我的观点。)
答案 0 :(得分:4)
我强烈建议您遵循链接文章的样式 - 使用$
前缀命名您的jQuery对象变量。当你的项目变大时,通过查看它们来了解哪些变量是jQuery对象将对你有很大的帮助。
答案 1 :(得分:2)
它没有任何问题,事实上它在关键代码中是一个好主意。然而,Sizzle引擎非常快,所以你应该考虑使用大量这样的变量可能造成的混乱以及性能优势是否值得。
当然,如果您的DOM发生了很大的变化,您需要注意保存的内容在DOM更新中保持有效。