liangsheng 发表于 2015-4-10 13:04:07

jQuery:辅助JavaScript开发的JavaScript Query库

jQuery:辅助JavaScript开发的JavaScript Query库
jQuery 顾名思议也就是 JavaScript 和 Query (查询),即是辅助 JavaScript 开发的库。jQuery 是一个快速、小巧、功能丰富的 JavaScript 库。jQuery 采用易于使用且可跨多浏览器的 API,可让遍历操控 HTML 文档、处理事件、动画、Ajax 变得更简单。结合通用性和可扩展性,jQuery 已改变了数以百万计的人编写 JavaScript 的方式。
jQuery 是一个兼容多浏览器的 JavaScript 库,核心理念是 write less, do more(写得更少, 做得更多)。
2006 年 1 月 jQuery 由美国人 John Resig 在纽约的 barcamp 发布,吸引了来自世界各地的众多 JavaScript 高手加入,由 Dave Methvin 率领团队进行开发。如今,jQuery 已成为最流行的 JavaScript 库,在世界前 10000 个访问最多的网站中,有超过 55% 在使用 jQuery。
jQuery 是继 prototype 之后的又一优秀 JavaScript 库。jQuery 是轻量级的 JavaScript 库,兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
jQuery 是免费、开源的,采用 MIT 许可协议。jQuery 的语法可使开发更加便捷,譬如:操作文档对象、选择 DOM 元素、制作动画效果、事件处理、使用 Ajax 及其他功能。除此以外,jQuery 还提供了 API 让开发者编写插件。其模块化的使用方式使开发者可很轻松的开发出功能强大的静态或动态网页。
jQuery 使用户能更方便地处理 HTML、events、实现动画效果,并方便地为网站提供 AJAX 交互。jQuery 有一较大优势:jQuery 的文档说明很全,且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery 可使用户的 HTML 页面保持代码和 HTML 内容分离;也就是说,不用再在 HTML 里面插入一堆 JavaScript 来调用命令,只需要定义 ID 即可。
jQuery 2.0 及后续版本将不再支持 IE6 / IE7 / IE8 浏览器。
jQuery 的官方插件是 jQuery UI。开发者可任意扩展 jQuery 的函数库或按自己的需求开发 UI 组件。网上已有数以万计的 jQuery 插件,覆盖各种各样的需求。譬如:Ajax 辅助、数据表格、动态列表、XML 工具、拖曳、cookie 处理、弹出层、等等。jQuery 的文档说明很全,且各种应用也说得很详细,同时还有许多成熟的插件可供选择,譬如:ComponentOne Studio for ASP NET Wijmo。
jQuery Gantt 控件是一个基于原生 HTML5/jQuery,功能丰富的控件。该控件真正实现了跨平台,在许多设备和浏览器中可无缝运行。

01、使用项目甘特图中内置的调度、依赖等功能实现任务分层列表的可视化。
02、使用资源甘特图实现一个资源利用视图。

03、使用基于 API 的 jQuery 或基于 API 的 MVC 可帮您轻松安装甘特图并加快应用速度。

04、可与诸如 KnockOut(KO)、jQuery.tmpl 等流行的 jQuery 模式一同使用。


主要特点

01、制作动态特效
02、支持 AJAX 交互
03、可通过插件扩展
04、方便的工具,譬如:浏览器版本判断
05、渐进增强
06、链式调用
07、多浏览器支持,譬如:Internet Explorer 6.0+、Opera 9.0+、Firefox 2+、Safari 2.0+、Chrome 1.0+(在 jQuery 2.0.0 中取消了对 Internet Explorer 6、Internet Explorer 7、Internet Explorer 8 的支持)
使用方法

jQuery可下载使用,有两个版本的 jQuery 可供下载:
01、Production version:用于实际网站中,已精简并压缩
02、Development version:用于测试和开发(未压缩,是可读代码)
这两个版本都可从 www.jQuery.com 官网下载。也可从公共服务器中选择引用。把 jQuery 存储在 CDN 公共库上可加快网站载入速度,CDN 公共库是指将常用 JS 库存放在 CDN 节点,以方便广大开发者直接调用。与将 JS 库存放在服务器单机上相比,CDN 公共库更加稳定、高速。国外的有 Google、Microsoft 等多家公司给 jQuery 提供 CDN 服务,国内有新浪云计算 (SAE) 、百度云 (BAE) 等。
注意事项

01、Wordpress 内置 jQuery 库,其末尾防止 JS 库冲突而加入的 jQuery.noConflict() 使得主题中所有 jQuery 代码都要做一些小修改,更可能导致一些插件效果失效。wordpress 建议下载官方 jQuery-Min 库放到当前主题目录下调用,不要使用 wp-includes 里面的库。
02、Google CDN 库的地址采用了协议相对路径,它可以很好的解决 https 引起的一些问题,具体可以看 Paul Irish 的介绍,当然你依旧可以使用带 “http:” 的路径。
03、许多网站都采用 Google CDN 提供的 jQuery 库,使用它可得到出色的缓存效果。
04、把 jQuery 代码统统放到页面底部可提高载入速度。
05、使用 HTML5 重构的页面可省略掉 type="text/javascript"。
06、推荐使用国内 CDN 公共库,速度更快,稳定性更高。

发展历史

# 时间 版本 说明 备注
01 2006年08月jQuery 1.0第一个稳定版本,已具有了对CSS选择符、事件处理和AJAX交互的稳健支持。

022007年01月jQuery 1.1这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的方法数量。

2007年07月jQuery 1.1.3这次的小版本变化,包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。
03
2007年09月jQuery 1.2这一版能够支持对效果的更灵活定制,且借助新增的命名空间事件,使插件开发变得更容易。 这一版去掉了对XPath选择符的支持,原因是相对于CSS的语法已变得多余。

jQuery UIjQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(譬如:可拖放的界面元素)的工具。这个新的插件套件是作为曾流行但已过时的Interface插件的替代项目而发布的。

2008年05月jQuery 1.2.6这一版主要是将Brandon Aaron开发的流行的Dimensions插件的功能移植到了核心库中。

04
2009年01月jQuery 1.3这一版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升。这一版正式支持事件委托特性。

2009年02月jQuery 1.3.2这次的小版本升级进一步提升了库性能,譬如:改进visible/:hidden选择符、.height()/.width()方法的底层处理机制。另外,还支持查询的元素按文档顺序返回。

05
2010年01月14日jQuery 1.4对代码库进行了内部重写组织,开始建立一些风格规范。老的core.js文件被分为attribute.js,css.js,data.js,manipulation.js,traversing.js和queue.js;CSS和attribute的逻辑分离。重写了大部分较早期的函数;
更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;
对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;
attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进

06
2011年01月31日jQuery 1.5该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对象(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建系统的改进。完全重写Ajax模块。新增一jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如JSONP请求,jXHR对象也可进行处理。
延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接(chainable)实用工具对象,实现了Promise接口,可在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此通过jQuery编写Ajax程序将自动获得这一功能。开发人员借此可使用无法立即获得的返回值(如异步Ajax请求的返回结果),且第一次能附加多个事件处理器。此外,使用jQuery.Deferred还可以开发自己的延迟对象。
jQuery.sub():jQuery 1.5提供了一种创建和修改jQuery副本的方式。可用来添加不向外部公开的方法,或者对jQuery的某些方法进行重定义以提供新功能,或提供更好的封装、避免名称空间冲突。当然,也可用来开发插件,但Resig强烈建议在开发插件前,先考虑jQuery UI widget工厂。值得注意的是,sub函数并不提供真正的隔离,所有方法、数据、调用仍然依靠jQuery本身来支持。
在新版本中。children(),.pre(),.next()几个常用遍历函数性能有了显著提高。
John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可专注于JavaScript环境的新变化;二是所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。

07
2011年09月29日jQuery 1.7
beta该版本修复了超过 50 个问题及带来一些新特性。


2011年11月4日jQuery 1.7新版本包含了很多新特征,特别提升了事件委派时的性能,尤其是在IE7下。01、新的事件 APIs: .on() and .off()02、提升了事件委派时的性能有了大幅度的提升,尤其是在IE7下
03、更好的在 IE6/ IE7/IE8 上支持 HTML5
04、切换动画更加直观
05、匿名模块定义 AWD
06、jQuery.Deferred
07、jQuery.isNumeric()
08、被删除的方法:event.layerX、event.layerY、jQuery.isNaN()


2012年03月24日jQuery 1.7.2该版本在1.7.1的基础上修复了大量bug,并改进了部分功能。相比1.7.2 RC1,只修复了一个bug。值得注意的是:如果你正在使用jQuery Mobile,请使用最新的jQuery 1.7.2和jQuery Mobile 1.1这两个版本,因为之前的jQuery Mobile版本还基于jQuery core 1.7.1或更早的版本。
08
2012年11月14日jQuery 1.8.3jQuery 1.8.3 修复了一些 bug 和性能衰退问题01、IE8中的HTML相关Bug
02、jQuery 1.8.2在IE9中调用ajax失败的问题
03、jQuery 1.7.1不能正确地设置IE7中克隆元素的tabindex属性问题
04、压缩JS文件包含非ASCII字符问题
05、如body样式设置为display:none,则$('body').show()无法工作问题
06、在IE9中element.css('filter')返回不明确问题
07、在Android 2.3.4的浏览器中,jQuery 1.8.1转场效果崩溃问题
08、在iPad上缩放一个灯箱效果后,所有动画效果失效问题
09、从1.3.2升级到1.8.2版本后,出现Uncaught TypeError错误问题
10、在Chrome和Safari中,无法正确检测包含可编辑内容DIV焦点问题

09
2013年02月23日jQuery 1.9.1汉化版由网友翻译非官方

10
2013年03月jQuery 2.0 Beta 2根据用户对jQuery 2.0 Beta 1 版本的反馈,Beta 2 版做了一些修改。jQuery官方表示,非常需要用户来测试 Beta 2 版,最好同时也能向他们反馈提交建议。
他们相信,Beta 2 版已非常稳定,值得一试,不需要等 2.0 的最终版本。jQuery 2.0 不再支持IE 6/IE7/IE8 了,但 jQuery 1.9 会继续支持。因为旧版 IE 浏览器在整个互联网中还有很大部分市场,所以他们非常期望大部分网站能继续使用 jQuery 1.x 一段时间。jQuery 团队也将同时支持 jQuery 1.x 和 2.x 。1.9 和 2.0 版的 API 是相同的,所以不必因为你们网站还在用 jQuery 1.9,就感觉好像错过了什么,或者是落后了。
如果你想继续支持 IE6/IE7/IE8,且又想尝试 jQuery 2.0,你可额外加上一些代码。除了老版的 IE,其他所有浏览器都将使用第二脚本,忽略第一个。


2013年4月18日jQuery 2.001、不再支持IE6/IE7/IE8:如果在IE9/IE10版本中使用“兼容性视图”模式也将会受到影响。
02、更轻更快:2.0版本文件与1.9.1相比小了12%。
03、可构建一个更小、更轻量的版本。
04、jQuery 2.0 API完全兼容jQuery 1.9 API。


11
2014年01月24日jQuery 2.1.0



2014年05月01日jQuery 2.1.1



版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

页: [1]
查看完整版本: jQuery:辅助JavaScript开发的JavaScript Query库