热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

选择jQuery的理由

随着Web前端技术的发展,Javascript框架层出不穷,jQuery就是其中之一。最近,国内外社区针对jQuery的优缺点做了深入的分析

随着 Web 前端技术的发展,Javascript 框架层出不穷,jQuery 就是其中之一。最近,国内外社区针对 jQuery 的优缺点做了深入的分析,其中不少内容值得 Web 开发人员借鉴。

Richard Hein 在“6 Things You Need to Know About jQuery”一文中列举了推荐 jQuery 的托干理由,包括:

  1. jQuery 简化工作——开发人员会发现学习 jQuery 比较容易,因为该框架的代码简洁精练,语法简单、编码标准开发等特点帮助开发人员缩短了部署应用的时间。此外,开发人员无需对 Web 设计非常在行,利用 jQuery,不必花费太多的时间用来编写和测试 CSS 代码,而且 jQuery 还有大量的 UI 组件。
  2. jQuery 的显示不受 Javascript 被禁用的影响——如果 Adobe Flash 不能正常加载,那么有的页面就不能正常显示。这会对用户产生负面的影响,并且导致开发人员不得不为此做额外的编码处理,从而延长了开发时间。而这种情况不会在 jQuery 身上出现。它采用的是 HTML DOM 操作,即使浏览器的 Javascript 被禁用,网页还是可以正常显示。
  3. jQuery 与 Visual Studio IDE 集成——NuGet 是 Visual Studio 的一个扩展,在开发基于 .NET Framework 的应用时,NuGet 能够简化添加、删除等工作。VS 2010 通过“管理 NuGet 包”对话框来支持对 jQuery 的集成。这种特性会触发 VS 的智能感知等功能,提示开发人员 jQuery 的方法和语法。总的来说,大多数 .NET 开发人员对 NuGet 都比较熟悉。这就是 jQuery 在 .NET 社区持续受到关注的原因之一。利用 jQuery 针对 Windows 的 Mobile theme,你会在 Windows Phone 平台上享受到所有的开发优势。微软也在鼓励 jQuery 的使用,并且认真对待 HTML5,引入了许多 jQuery 元素。
  4. jQuery 制作的动画效果不比 Flash 差——Flash 开发人员需要很长的学习过程,对于通常的开发人员开说,需要花费数年的时间才能创建出优秀的作品。而另一方面,jQuery 是免费的,而且只要求开发人员了解 Javascript 和 HTML。假设你可以负担得起 Flash 开发软件,但是开发人员仍然需要处理那些不支持 Flash 的情况,这是构建 Flash 网站的最大的缺点之一,也是利用 HTML5 构建的最大优势之一。同时,jQuery 使用了 CSS、HTML、Javs 和 Ajax,这意味着你可以无需采用类似 Flash 那种特殊的优化方式。
  5. jQuery 加载更快——Google 和其他搜素引擎都把页面加在时间作为影响 SEO 的因素之一。因此,开发人员都会努力把 Web 代码尽可能写的简洁和准确。最好的方式是减少代码量。jQuery 文件与 Web 页面分开存储,这可以让开发人员集中地优化代码。此外,jQuery 还支持开发人员自主选择如何加载 Div 标签,如果你想要改进网站的速度,那么可能会考虑在必要的时候只加载所需的 Div 标签。
  6. jQuery 有助于 SEO——网站的代码结构对各种搜索引擎的排名影响较大,jQuery 提供了大量优化的插件帮助开发人员完成这项工作。

在国内社区,开发人员也对 jQuery 做了讨论。张经纬比较了 jQuery 和 YUI 的优缺点:

jQuery 专注于 DOM 的操作,他通过继承的方式给传入的对象增加了新的方法,从而使我们可以通过链式调用来操作对象,这种方法上手简单,我看到很多设计师都可以玩上一玩。其实,就像 jQuery 说的,write less do more!

YUI 是一个大型开发工具,他提供了一套 Javascript 以及 css 的类库来为交互开发提供支持,我们可以看到 YUI 除了主打的 js 框架外,还有配套的压缩工具(YUI Compressor),文档生成工具(YUI Doc),单元测试工具(YUI Test)甚至开放了 PHPLOADER(YUI PHP Loader ),再较大团队开发中,这些东西是非常重要的。

从编程语法上来说,诚如前面所说,jQuery 专注于 DOM 操作,因此必不可免的弱化了 OO,相比之下 YUI 则更加规范。再如,jQuery 中面向 DOM 的设计,决定了他可以通过$.extend ()或者$(elem) .extend ()向对象或者节点增加新的方法,而 YUI 在这方面就异常的笨拙。当然,这些并不能说明谁比谁好,YUI 的颗粒化决定了他的维护成本低,可以称为刀,而 jQuery 锋利的刀刃决定了它使用方便,游刃有余,可以称为剑。

程劭非则对 jQuery 的评价不高,理由包括:

  1. jQuery 主要解决了兼容问题和 DOM 操作问题,以 CSS 选择器的方式批量操作元素是主要特色,对于特定项目,我认为实现这个的难度实在不大。而其主旨”write less, do more.” 少写些的这个观点我半点不能认同,写程序的时间主要花在思考和调试,而非打字。
  2. jQuery 污染了两个名字 JQuery 和$,这个在类库中可以算极少污染了,但是实际上$与其它类库冲突很多,而 noconflict 这个方案可算不伦不类。
  3. jQuery 的 API 设计可以说非常巧妙和优秀,但是其实跟 JS 的原生对象差的有些远,不过却跟 CSS 的模式比较接近,这个对于不少人很有亲和力。
  4. jQuery 的实现质量也算比较高了,虽然选择器还有些优化空间,不过基本可以认为没有太大问题。

杨昆则给出了知乎选择 Closure Library 来作为 Javascript 库,而不选择更流行的 jQuery 的理由:

选择 closure-library 是因为这是一个整体解决方案,自带的库已经很丰富,不需要再去找其他插件。而且 google 用其开发了 gmail,google doc,可以放心它的质量。

如果选择 jquery 的话,单纯 jquery 库是不够的,还得很多第三方插件,这些插件质量良莠不齐,对不同版本 jquery 支持还不一致。


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
author-avatar
-不寻常-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有