我最近收听了播客,该播客对使用$()
与使用jQuery()
进行了评论。据说,每次使用$()
时都会创建一个新对象,而使用jQuery()
时则不是这样。我在谷歌周围但却找不到关于这个特定主题的任何内容。
我意识到这不是一个典型的例子,但以下是我对这个问题的答案感兴趣的原因。
我有一个页面,用户将在浏览器中加载一整天(24小时,或可能更长),并且每隔约5秒对DOM进行更新,这是通过jQuery调用AJAX的结果( AJAX调用部分与更新DOM无关 - 对DOM的更新是使用HTML字符串和jQuery对象调用.empty()
然后.html()
完成的。
自从听到此消息后,我随后将所有$()
来电切换为jQuery()
来电,但我想知道:
使用$()
vs使用jQuery()
是不是很糟糕的做法?这两者之间的差异是微不足道的吗?或者它在大型项目中是否真的引人注目?
答案 0 :(得分:21)
不,这不是不好的做法,也没有性能差异。
$
和jQuery
标识符引用相同的函数实例
这是由jQuery.js的最后一行完成的:
window.jQuery = window.$ = jQuery;
答案 1 :(得分:12)
使用$()
而不是jQuery()
的唯一问题是另一个Javascript框架也可能使用它。
答案 2 :(得分:4)
不 - 看看jQuery源代码。 $只是jQuery的另一个别名 - 最后一行说明了一切:
window.jQuery = window.$ = jQuery;
答案 3 :(得分:2)
对我来说,目标是避免命名与其他使用$作为主要对象的库的冲突,如Prototype,如果你想在同一页面上使用这两个库,或者你不知道你的代码将在哪里二手...
答案 4 :(得分:2)
你确定它是$()vs jQuery()吗?也许更重要的一点就是有性能命中率,而且许多新的js编码器在普通的js可以做到时不必要地使用$()。
最好避免在不需要时创建jQuery对象。
答案 5 :(得分:0)
如前所述,唯一真正的问题是与使用的其他js框架发生冲突,因此我发现这是仍然能够使用美元符号的最方便的解决方案,但没有冲突并使您的代码更具可移植性:
(function($) { /* some code that uses $ */ })(jQuery)
http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery