jQuery 与其他 JavaScript 库相比都有哪些优势?

Posted

技术标签:

【中文标题】jQuery 与其他 JavaScript 库相比都有哪些优势?【英文标题】:What advantages does jQuery have over other JavaScript libraries?jQuery 与其他 JavaScript 库相比有哪些优势? 【发布时间】:2010-09-09 04:25:37 【问题描述】:

我试图说服那些在我目前的组织中制定标准的人,我们应该使用 jQuery 而不是 Prototype 和/或 YUI。我可以使用哪些令人信服的优势来说服他们?

【问题讨论】:

每个人和他们的妈妈都使用它。 :P JQuery 只是一个 DOM 操纵器,YUI 是一个包含 DOM 操纵器的组件框架。 【参考方案1】:

jQuery 的 3 个主要优点是:

与其他 javascript 框架相比,它的重量很轻 它有广泛的plugins 可供各种特定需求使用 设计人员更容易学习 jQuery,因为它使用熟悉的 CSS 语法。 jQuery 是Javascript for Designers

【讨论】:

【参考方案2】:

这是您能找到的最深思熟虑的语言——它几乎是直观的。

想要元素的宽度?

$('#something').width();

想要抓取一个元素、隐藏它、更改它的背景颜色并重新淡入吗?

$('#something').hide().css('background', 'red').fadeIn();

IE 的表格条带化怎么样(假设定义了hover 类)?

$('table tr').hover(function() 
  $(this).addClass('hover');
);

像这样快速、无脑的工作确实有助于销售 jQuery。

【讨论】:

【参考方案3】:

嗯……

首先你应该想想为什么你认为 jQuery 很好,但你不知道用什么论据来说服别人。也许你应该先说服自己。 ;)

无论如何,jQuery 只是另一个框架。你应该使用它最擅长的。如果您打算将它仅用于基本的 DOM 处理,请忘记它!学会正确使用js就可以了!

考虑一下这个 html

<body>
<div style="width: 400px; height: 400px; background-color: red">
<div style="width: 400px; height: 400px; background-color: red">
</div>

<script type="text/javascript">

function test1 ()
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

$(div).width("400px").height("400px").css("background-color", "red");
    

function test2 ()
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

$(div).width("400px");
$(div).height("400px");
$(div).css("background-color", "red");


function test3 ()
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

div.style.width = "400px";
div.style.height= "400px";
div.style.backgroundColor = "red";


function test4 ()
    document.body.innerHTML = ""

    var div = document.createElement("div");

    document.body.appendChild(div);

    div.setAttribute("style", "width: 400px; height: 400px; background-color: red");


</script>
</body>

将其放入带有 jquery 的 hml 文件中,&lt;head&gt;

然后,打开 firebug 并运行以下代码: 控制台.profile(); 测试1(); 控制台.profileEnd();

console.profile();
test2();
console.profileEnd();

console.profile();
test3();
console.profileEnd();

console.profile();
test4();
console.profileEnd();

亲自查看结果!

但是,如果您想对 DOM 进行一些复杂的操作,需要您进行多次循环或找出 DOM 上的元素是否符合某些条件,您可以考虑使用 jQuery,因为它会为您执行此过程。

无论如何,请记住,没有什么比使用您在代码中保留的引用来控制 DOM 更好的了。它的速度更快,对其他人来说更具可读性。谷歌“js 最佳实践”。

我将 jQuery 用于复杂的事情,这将花费我太长时间来实现,并且最终会得到类似于 jQuery 代码的东西。这种情况下,使用它是有意义的!

玩得开心!

【讨论】:

【参考方案4】:

根据经验,每个人都有自己的优势和劣势,因为它们在您的应用程序中扮演着非常具体的角色。做出全球决定可能不是最合适的方法。制定手头的具体任务并分析性能、膨胀、经验等,然后做出具体的决定/建议。

【讨论】:

【参考方案5】:

您可以关注this link 了解更多关于jQuery,为什么要使用它以及它有什么优点。

【讨论】:

【参考方案6】:

我已经使用 jQuery 几个月了,发现它是一种愉快的体验。该框架清晰简洁,它具有出色的插件架构并且得到很好的支持,但是框架是一件非常私人的事情,您可能应该尝试一些通常不会花费很长时间才能找到最适合您的框架。

不确定这对您是否重要,但 Microsoft 最近宣布在 VS 2008 的下一次更新中支持 jQuery Here is the blog post。

您可以听到 jQuery 背后的人 John Resig 在最近的 Boagworld podcast 上谈论它和其他各种框架。它可能会帮助您下定决心,它是一个非常平衡的部分。

【讨论】:

【参考方案7】:

如果您试图从商业角度说服人们,微软最近决定将 jQuery 与 Visual Studio 一起发布可能有助于建立一些额外的可信度。再说一次,这可能会损害您的事业,具体取决于他们对 Microsoft 的看法。

【讨论】:

【参考方案8】:

这是比上面提供的更新的速度测试。上次我运行它时,dojo 是最快的,其次是 jQuery、Mootools、Prototype,最后是 YUI。请注意,我在 Firefox 3 中运行它,不同浏览器的速度不同,因此请自行测试。

Slick Speed Test

【讨论】:

这不是最近的速度测试,也不是全面的。 Slick Speed 比较的是 CSS 选择器引擎,而不是整体性能。 YUI 2.5.2 于 2008 年发布。目前 YUI 2.x 的生产版本是 2.8.2,2.9 正在开发中。这将是 2.x 代码行的最后一个 dot 版本。 YUI 3 从 2009 年开始提供。当前版本是 3.2,3.3.0 将于 2011 年 1 月发布。【参考方案9】:

Jquery 已经存在了几年,所以就像其他人所说的那样,它拥有一个深厚的社区、大量的插件和良好的支持。对我来说把它放在一边的是它很容易学习。

见http://visualjquery.com/1.1.2.html

【讨论】:

【参考方案10】:

它有一套很好的插件,而且编码风格不显眼,这意味着它不会太难替换。 Ruby on Rails 助手也有一个很好的替代品,称为 jRails。

在性能方面它们都非常接近:http://www.kenzomedia.com/speedtest/ 但是,MooTools、dojo、ext 和 Prototype 在我的环境中都运行得更快。

我的问题是——你为什么要使用它?只是因为你更了解它吗?

【讨论】:

好问题!我想使用它是因为我认为它具有更好的语法、更多可用的功能(当您包含插件时)、出色的文档以及更强大的社区支持。但我们已经有了公司标准,所以我想我会寻找更多的想法来支持我的论点。【参考方案11】:

一个赞成的论点是这样的:

流行度+可扩展性

1) 如果有人需要用 JavaScript 做 X,那可能是用 jQuery 做的 2)如果做了很多,可能有一个插件,如果不是原生支持

如果它真的独一无二,那么会有很多人在 SO 或其他地方回答您的问题。

【讨论】:

【参考方案12】:

您为什么不创建一个快速比较?

执行一项任务,例如“查找所有包含 foo 类图像的 div 或表格,并为每个 div 附加一个点击事件,使它们扩大 50%。”或者与您正在做的事情更相关的事情。

然后用 jQuery、Prototype 等编写代码并进行比较。哪个更短?更容易阅读?跑得更快? (可以找速度对比here。)

【讨论】:

我会选择一个不那么随意的测试用例。怎么样:对外部脚本进行 AJAX 调用并将响应放入屏幕中间的样式消息框中。【参考方案13】:

我会说我使用 JQuery 的主要原因是:

大型开发社区和许多插件。 微软正在关注它,他们正在添加一些插件支持和 调试功能。 非常好的第 3 方库文档。 轻巧。 链接功能非常强大。

【讨论】:

不仅仅是微软的雷达 - 也是谷歌的雷达。【参考方案14】:

    它非常小,尤其是在缩小后,并且在核心库中提供了很多功能。

    它也很容易扩展,并且有一个活跃的社区。​​p>

    最后,它非常容易学习;一旦掌握了核心概念,您就可以立即开始编写复杂的解决方案。

【讨论】:

【参考方案15】:

也许你不应该?这完全取决于您正在构建的应用程序类型。如果您正在构建 GUI 密集型应用程序,例如 Yahoo!邮件,那么也许你应该考虑在 jquery 上使用 YUI 或 Mootools。就我个人而言,我是一个 jQuery 的忠实粉丝,但它绝对是为原本大部分是静态的 UI 添加一点交互的最佳选择。另一方面,如果这是您将使用它的目的,那么 jquery 会简单得多,语法更好,并且有很大的动力。

【讨论】:

【参考方案16】:

在我看来,曾短暂尝试过 Prototype,然后又尝试并爱上了 jQuery:jQuery API 感觉更加简洁且经过深思熟虑。 jQuery 的创建者/架构师 John Resig 非常了解他的东西,这体现在 jQuery 的设计中,以及他参与的其他各种令人印象深刻的 JavaScript 项目中。

查询和可链接性的整个概念非常适合 DOM 操作,这似乎是人们使用 JS 库的主要目的。在线文档很棒。性能似乎也非常好。鉴于它的功能,整个库适合一个相对较小的包。插件架构的可扩展性也很好。

老实说,我还没有尝试过 YUI,所以我不能对此发表太多评论。我确实知道它总体上是一个相当庞大的库,尽管您可以选择仅下载/使用它的特定模块。

【讨论】:

【参考方案17】:

我是 Prototype 人,但我使用过一些 jQuery。老实说,两者之间没有太多可以用作“卖点”的地方。另一方面,YUI 相当臃肿。我永远不会在任何商业级应用程序中使用它。

我发现 this page 谈到了这个确切的主题。

【讨论】:

现在为 Yahoo! 工作的 Chris Heilmann 在刚开始在 Yahoo! 工作时对 YUI 也有类似的想法。 wait-till-i.com/2007/06/16/… - 讨论这个问题。 YUI 3 还对 API 进行了重大更改。 永远不要在商业级应用程序上使用 YUI?好吧,@LinkedIn 他们决定不同,他们使用 YUI ... (developer.yahoo.com/yui/poweredby)【参考方案18】:

jQuery 的一个优势是开发了大量插件的大型社区。​​p>

【讨论】:

以上是关于jQuery 与其他 JavaScript 库相比都有哪些优势?的主要内容,如果未能解决你的问题,请参考以下文章

jquery

JavaScript函数库.jQuery

jQuery库与内联脚本冲突

jQuery与javascript库

使用 iframe 上父文档中的 javascript(以及 jQuery 和其他库)和多个来源

与其他跨平台正则表达式库相比,Oniguruma 有多好?