我试图说服那些在我目前的组织中制定标准的人,我们应该使用 jQuery 而不是 Prototype 和/或 YUI。我可以用哪些令人信服的优势来说服他们?
18 回答
jQuery 的 3 个主要优点是:
- 与其他 javascript 框架相比,它的重量很轻
- 它有广泛的插件可用于各种特定需求
- 设计人员更容易学习 jQuery,因为它使用熟悉的 CSS 语法。jQuery 是 面向设计师的 Javascript
我会说我使用 JQuery 的主要原因是:
- 大型开发社区和许多插件。
- 它在微软的雷达上,他们正在添加一些插件支持和调试功能。
- 非常好的第 3 方库文档。
- 轻的。
- 链接功能非常强大。
这是您能找到的最深思熟虑的语言——它几乎是直观的。
想要元素的宽度?
$('#something').width();
想要抓取一个元素,隐藏它,改变它的背景颜色并淡入淡出?
$('#something').hide().css('background', 'red').fadeIn();
IE 的表条带化怎么样(假设hover
定义了类)?
$('table tr').hover(function() {
$(this).addClass('hover');
});
像这样快速、无脑的工作确实有助于销售 jQuery。
这是比上面提供的更新的速度测试。上次我运行它时,dojo 是最快的,其次是 jQuery、Mootools、Prototype,最后是 YUI。请注意,我在 Firefox 3 中运行它,不同浏览器的速度不同,因此请自行测试。
在我看来,曾短暂尝试过 Prototype,然后又尝试并爱上了 jQuery:jQuery API 感觉更加干净且经过深思熟虑。jQuery 的创建者/架构师 John Resig 非常了解他的东西,并且在 jQuery 的设计以及他参与的各种其他令人印象深刻的 JavaScript 项目中都体现了这一点。
查询和可链接性的整个概念非常适合 DOM 操作,这似乎是人们使用 JS 库的主要目的。在线文档很棒。性能似乎也非常好。鉴于它的功能,整个库适合一个相对较小的包。插件架构也非常适合可扩展性。
老实说,我还没有尝试过 YUI,所以我不能对此发表太多评论。我确实知道它总体上是一个相当庞大的库,尽管您可以选择仅下载/使用它的特定模块。
它非常小,尤其是在缩小时,并且在核心库中提供了很多功能。
它也很容易扩展,并且有一个活跃的社区。
- 最后,它非常容易学习;一旦掌握了核心概念,您就可以立即开始编写复杂的解决方案。
一个赞成的论点是这样的:
流行性+可扩展性
1) 如果有人需要用 JavaScript 做 X,那可能是用 jQuery 做的
2) 如果做了很多,可能有一个插件,如果不是原生支持的话
如果它真的很独特,那么有很多人会在 SO 或其他地方回答您的问题。
jQuery 的一个优势是开发了大量插件的大型社区。
您可以点击此链接了解更多关于 jQuery、为什么要使用它以及它的优点是什么。
出色地...
首先你应该考虑一下为什么你认为 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 文件中<head>
然后,打开 firebug 并运行以下代码:console.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 代码的东西。在这种情况下,使用它是有意义的!
玩得开心!
根据经验,每个人都有自己的优势和劣势,因为它们在您的应用程序中扮演着非常具体的角色。做出全球决定可能不是最合适的方法。制定手头的具体任务并分析性能、膨胀、经验等,然后做出具体的决定/建议。
也许你不应该?这完全取决于您正在构建的应用程序类型。如果您正在构建 GUI 密集型应用程序,例如 Yahoo! 邮件,那么也许你应该考虑在 jquery 上使用 YUI 或 Mootools。就我个人而言,我是 jQuery 的忠实粉丝,但它绝对是为原本大部分是静态的 UI 添加一点交互的最佳选择。另一方面,如果这是您将使用它的目的,那么 jquery 会简单得多,语法更好,并且有很大的动力。
我是一个原型人,但我用过一点 jQuery。老实说,两者之间没有太多可以用作“卖点”的地方。另一方面,YUI 相当臃肿。我永远不会在任何商业级应用程序上使用它。
我发现这个页面讨论了这个确切的主题。
Jquery 已经存在了几年,所以就像其他人所说的那样,它有一个深厚的社区、大量的插件和良好的支持。对我来说把它放在一边的是它很容易学习。
它有一套很好的插件,编码风格不显眼,这意味着它不太难替换。Ruby on Rails 助手也有一个很好的替代品,称为 jRails。
在性能方面,它们都非常接近:http : //www.kenzomedia.com/speedtest/ 但是,MooTools、dojo、ext 和 Prototype 在我的环境中都运行得更快。
我的问题是 - 你为什么要使用它?只是因为你更了解它吗?
我已经使用 jQuery 几个月了,发现它是一种愉快的体验。该框架清晰简洁,它具有出色的插件架构并且得到很好的支持,但是框架是非常个人化的东西,您可能应该尝试一些通常不会花费很长时间来找到最适合您的框架。
不确定这对您是否重要,但 Microsoft 最近宣布在 VS 2008 的下一次更新中支持 jQuery这是博客文章。
您可以听到 jQuery 背后的人 John Resig 在最近的Boagworld 播客中谈论它和其他各种框架。它可能会帮助您下定决心,这是一个非常平衡的部分。
为什么不创建一个快速比较?
执行一项任务,例如“查找所有包含 foo 类图像的 div 或表格,并为每个 div 附加一个点击事件,使它们扩大 50%。” 或者与您正在做的事情更相关的事情。
然后使用 jQuery、Prototype 等对其进行编码并进行比较。哪个更短?更容易阅读?跑得更快?(您可以在此处找到速度比较。)
如果您试图从商业角度说服人们,微软最近决定将 jQuery 与 Visual Studio 一起发布可能有助于建立一些额外的可信度。再说一次,这可能会损害您的事业,具体取决于他们对 Microsoft 的看法。