武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

选择 jQuery 的理由

  • 2012-08-05
  • 本文字数:2177 字

    阅读完需:约 7 分钟

随着 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 支持还不一致。

InfoQ 的读者对 jQuery 的优缺点有什么看法?欢迎发表自己的看法!

2012-08-05 09:5310679
用户头像

发布了 501 篇内容, 共 247.2 次阅读, 收获喜欢 57 次。

关注

评论

发布
暂无评论
发现更多内容

KubeEdge v1.15.0发布!新增5大特性

华为云开发者联盟

云计算 云原生 后端 华为云 华为云开发者联盟

10月24日程序员节

小齐写代码

cmp云管平台专业厂商哪家好?有什么优势?

行云管家

公有云 数据安全 云管平台 云管理 云数据安全

10月24日程序员节

小魏写代码

Arbitrum链阿尔比特ARBT共识铸币模式系统开發(源码搭建)

l8l259l3365

IPSec VPN原理介绍 | 京东物流技术团队

京东科技开发者

vpn IPsec 企业号10月PK榜

JProfiler for Mac永久激活版下载

iMac小白

JProfiler for Mac JProfiler中文版 JProfiler下载 JProfiler 14

开发dapp系统软件,提供开发dapp系统

西安链酷科技

区块链 软件开发 dapp 去中心化 生态系统

SecureCRT for mac注册破解版下载

iMac小白

SecureCRT下载 SecureCRT破解版 SecureCRT注册 SecureCRT激活 SecureCRT mac

Android Kotlin 协程初探 | 京东物流技术团队

京东科技开发者

kotlin andiod 企业号10月PK榜

公有云数据安全保障措施看这里!

行云管家

云计算 公有云 数据安全 堡垒机

前端CodeReivew实践 | 京东云技术团队

京东科技开发者

前端 敏捷开发 Code Review 代码评审 企业号10月PK榜

3D模型如何添加表面贴图?

3D建模设计

材质 纹理 贴图

Apple Remote Desktop mac (远程桌面软件) v3.9.7完整激活版

mac

苹果mac Windows软件 Apple Remote Desktop 远程桌面管理软件

轻松理解 Transformers(1):Input部分

Baihai IDP

人工智能 深度学习 AI transformers 白海科技

AlDente Pro for Mac中文激活版下载

iMac小白

AlDente Pro下载 AlDente Pro破解版 AlDente Pro mac

React技术栈支援Vue项目,你需要提前了解的 | 京东云技术团队

京东科技开发者

Vue 前端 React 企业号10月PK榜

第8期 | GPTSecurity周报

云起无垠

云安全中的生成式AI:雷声大雨点小?!

树上有只程序猿

云安全 生成式人工智能

深入解析 GreptimeDB 全新时序存储引擎 Mito

Greptime 格睿科技

数据库 时序数据库 时序数据 Greptime GreptimeDB

10Z4 任务已发布,请各位玩家及时查收

Zilliz

1024 Milvus Zilliz 社区活动

支付宝沙箱超详细教程+避雷经验,看这篇就够了

盐焗代码虾

测试 支付宝 沙箱

智慧云-实现企业APP梦想,10倍轻松便捷

知者如C

数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B实验

字节跳动数据平台

大数据 数字化转型 云服务 数据平台 火山引擎

C++中的多线程编程:高效的并发处理方式

高端章鱼哥

c++ 多线程编程

1024 | 9位开发者分享生涯“最”时刻,文武状元大PK等你来

华为云开发者联盟

程序员 华为云 1024程序员节 华为云开发者联盟

Acrobat Pro DC 2022 for Mac中文破解版下载

iMac小白

Adobe Acrobat Pro DC下载 Adobe Acrobat Pro DC破解

揭秘产品经理提升效率的秘密武器:在线白板工具你绝对不能错过!

彭宏豪95

产品 产品经理 科技 在线白板 办公软件

如何从单体架构迁移到微服务架构:挑战和最佳实践

互联网工科生

微服务 单体

需要获取产品License

矩视智能

深度学习 机器视觉

数仓实时场景下表行数估算不准确引起的的性能瓶颈问题案例

华为云开发者联盟

数据库 后端 华为云 数仓 华为云开发者联盟

选择jQuery的理由_语言 & 开发_崔康_InfoQ精选文章