我不想再开一个"又一个Js VS Js"的讨论帖。
我猜,Prototype和jQuery最终都是JS,并且几乎具有相同的方法和函数,执行相同任务需要几乎相同的代码行数。
对于一个真正的富互联网应用程序,在Prototype和jQuery之间,哪些是真正的优势,哪些是弱点?
我不想再开一个"又一个Js VS Js"的讨论帖。
我猜,Prototype和jQuery最终都是JS,并且几乎具有相同的方法和函数,执行相同任务需要几乎相同的代码行数。
对于一个真正的富互联网应用程序,在Prototype和jQuery之间,哪些是真正的优势,哪些是弱点?
我曾使用过原型框架和jQuery,就我个人而言,我更喜欢jQuery,因为它有noConflict()方法; 在我的JS文件中,我更倾向于这样使用jq noConflict。
(function($){
}(jQuery));
这种方式将使您在JS文件中使用$作为jQuery选择器
订阅已经标记为正确答案的问题后,我还想分享一个库,它允许您使用大多数实用程序,这些实用程序通常可以在像原型这样的框架中找到,但具有不扩展本机对象的优势。因此,它为您提供了更多控制和灵活性,以便您可以在项目中使用其他补充框架。
Underscore是JavaScript的实用程序库,提供了很多函数式编程支持,这是您在Prototype.js(或Ruby)中所期望的,但没有扩展任何内置的JavaScript对象。它是与jQuery的礼服和Backbone.js的吊带一起使用的绑定工具。
我能否提出这样的论点,使用其中之一是一个虚假的二元选择?通过大量使用jQuery,我知道它可以带来多大的好处,以及应用程序开发可以变得更快。
然而,需要注意的是,在某些情况下,对于最终用户来说,不使用任何库可能会更有益,特别是在不需要时。虽然对于大型应用程序来说肯定很有帮助,但在普通网站上使用可能会适得其反,因为会影响性能。
下载库会产生额外的HTTP请求,尽管通常在缩小后很小,但需要更多的带宽。这可能会导致页面加载时间变慢,移动用户可能会感受到。
此外,在加载时,库将立即执行代码以创建全局可访问的函数和对象,从而消耗更多内存,即使您从未使用过它们。一些库还会向内置对象原型添加函数和对象,这也会增加内存使用率。
最后,虽然jQuery和许多其他库经常经过广泛测试以确保对性能的影响最小,但您编写的代码尽管数量减少,但通常会比其他情况下慢。请记住,您可以使用原始JavaScript完成库所能做的一切,因为从根本上说它们是相同的。