JQuery是一個(gè)快速、簡(jiǎn)潔的JavaScript框架,是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫(kù)(或JavaScript框架)。jQuery設(shè)計(jì)的宗旨是“write Less,Do More”,即倡導(dǎo)寫(xiě)更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,優(yōu)化HTML文檔操作、事件處理、動(dòng)畫(huà)設(shè)計(jì)和Ajax交互。
JQuery的核心特性可以總結(jié)為:具有獨(dú)特的鏈?zhǔn)秸Z(yǔ)法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對(duì)CSS選擇器進(jìn)行擴(kuò)展;擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
2005年8月,John Resig提議改進(jìn)Prototype的“Behaviour”庫(kù),于是他在blog上發(fā)表了自己的想法,并用了3個(gè)例子做簡(jiǎn)單的流程說(shuō)明。
當(dāng)時(shí)John的想法很簡(jiǎn)單:他發(fā)現(xiàn)這種語(yǔ)法相對(duì)現(xiàn)有的JavaScript庫(kù)更為簡(jiǎn)潔。但他沒(méi)想到的是,這篇文章一經(jīng)發(fā)布就引起了業(yè)界的關(guān)注。于是John開(kāi)始認(rèn)真思考著這件事情(編寫(xiě)語(yǔ)法更為簡(jiǎn)潔的JavaScript程序庫(kù)),直到2006年1月14日,John正式宣布以jQuery的名稱發(fā)布自己的程序庫(kù)。隨之而來(lái)的是jQuery的快速發(fā)展。
2006年1月John Resig等人創(chuàng)建了jQuery;8月,jQuery的第一個(gè)穩(wěn)定版本,并且已經(jīng)支持CSS選擇符、事件處理和AJAX交互。
2007年7月,jQuery 1.1.3版發(fā)布,這次小版本的變化包含了對(duì)jQuery選擇符引擎執(zhí)行速度的顯著提升。從這個(gè)版本開(kāi)始,jQuery的性能達(dá)到了Prototype、Mootools以及Dojo等同類(lèi)JavaScript庫(kù)的水平。同年9月,jQuery 1.2版發(fā)布,它去掉了對(duì)XPath選擇符的支持,原因是相對(duì)于CSS語(yǔ)法它已經(jīng)變得多余了。這一版能夠?qū)πЧM(jìn)行更為靈活的定制,而且借助新增的命名空間事件,也使插件開(kāi)發(fā)變得更容易。同時(shí),jQuery UI項(xiàng)目也開(kāi)始啟動(dòng),這個(gè)新的套件是作為曾經(jīng)流行但已過(guò)時(shí)的Interface插件的替代項(xiàng)目而發(fā)布的。jQuery UI中包含大量預(yù)定義好的部件(widget),以及一組用于構(gòu)建高級(jí)元素(例如可拖放、拖拽、排序)的工具。
2008年5月,jQuery 1.2.6版發(fā)布,這版主要是將Brandon Aaron開(kāi)發(fā)的流行的Dimensions插件的功能移植到了核心庫(kù)中,同時(shí)也修改了許多BUG,而且有不少的性能得到提高。因此,如果以前的jQuery版本升級(jí)到1.2.6,那么完全可以從代碼中排除Dimensions插件(一個(gè)獲得元素尺寸、定位的插件)。
在jQuery迅速發(fā)展的同時(shí),一些大的廠商也看中了商機(jī)。2009年9月,微軟和諾基亞公司正式宣布支持開(kāi)源的jQuery庫(kù),另外,微軟公司還宣稱他們將把jQuery作為Visual Studio工具集的一部分。他將提供包括jQuery的智能提示、代碼片段、示例文檔編制等內(nèi)容在內(nèi)的功能。微軟和諾基亞公司將長(zhǎng)期成為jQuery的用戶成員,其他成員還有Google,Intel,IBM,Intuit等公司。
2009年1月,jQuery 1.3版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個(gè)瀏覽器下全面超越其他同類(lèi)型JavaScript框架的查詢速度,程序庫(kù)的性能也因此有了極大提升。這一版本的第2個(gè)變化就是提供live()方法,使用live()方法可以為當(dāng)前及將來(lái)增加的元素綁定事件,在1.3版之前,如果要為將來(lái)增加的元素綁定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。
2010年1月,也是jQuery的四周年生日,jQuery 1.4版發(fā)布,為了慶祝jQuery四周歲生日,jQuery團(tuán)隊(duì)特別創(chuàng)建了jquery14.com站點(diǎn),帶來(lái)了連續(xù)14天的新版本專(zhuān)題介紹。
在1.3及更早版本中,jQuery通過(guò)JavaScript的eval方法來(lái)解析json對(duì)象。在1.4中,如果你用的瀏覽器支持,則會(huì)使用原生的JSON.parse解析json對(duì)象,這樣對(duì)json對(duì)象的書(shū)寫(xiě)驗(yàn)證則更為嚴(yán)格。比如:{foo: "bar"}的寫(xiě)法將不會(huì)被驗(yàn)證為合法的json對(duì)象,必須寫(xiě)成{"foo":"bar"}。如果你的程序打算升級(jí)到1.4版本,那么這一點(diǎn)要尤其注意。
2011年1月,jQuery 1.5版發(fā)布。
2011年11月,jQuery 1.7版發(fā)布。
jQuery 的文檔非常豐富,因?yàn)槠漭p量級(jí)的特性,文檔并不復(fù)雜,隨著新版本的發(fā)布,可以很快被翻譯成多種語(yǔ)言,這也為jQuery 的流行提供了條件。jQuery 被包在語(yǔ)法上,jQuery 支持CSS1-3 的選擇器, 兼容IE 6.0+, FF 2+,Safari 3.0+, Opera 9.0+, Chrome 等瀏覽器。同時(shí),jQuery 有約幾千種豐富多彩的插件,大量有趣的擴(kuò)展和出色的社區(qū)支持,這彌補(bǔ)了jQuery功能較少的不足并為jQuery 提供了眾多非常有用的功能擴(kuò)展。加之其簡(jiǎn)單易學(xué),jQuery 很快成為當(dāng)今最為流行的JavaScript 庫(kù),成為開(kāi)發(fā)網(wǎng)站等復(fù)雜度較低的Web 應(yīng)用程序的首選JavaScript 庫(kù),并得到了大公司如微軟,Google 的支持。