前 言
$表示美元符號(hào),就是這個(gè)小符號(hào)讓無(wú)數(shù)網(wǎng)頁(yè)設(shè)計(jì)師和Web開(kāi)發(fā)人員為之著迷,甚至折腰。實(shí)際上在jQuery誕生之前,已經(jīng)有很多語(yǔ)言和框架在使用$符號(hào)了,如Prototype和DWR等。使用$符號(hào)代替document.getElementById( )函數(shù)應(yīng)該是DOM訪(fǎng)問(wèn)中最簡(jiǎn)捷的操作方法了。沒(méi)錯(cuò),jQuery是后起之秀,是跟風(fēng)者,但正是因?yàn)閖Query,才讓更多的讀者、學(xué)者、設(shè)計(jì)師和開(kāi)發(fā)人員把$符號(hào)銘記于心。
jQuery確實(shí)有其無(wú)窮的魅力,我也是在這個(gè)魅力的潮流中開(kāi)始研究jQuery并利用它進(jìn)行開(kāi)發(fā)的。從2006年到現(xiàn)在,不到4年的時(shí)間,jQuery竟然能夠聚焦全球億萬(wàn)開(kāi)發(fā)人員的眼球,實(shí)在是Web開(kāi)發(fā)史上的一大奇跡。這又是為什么呢?
從jQuery(JavaScript+Query)名稱(chēng)也可以看出,使用CSS+XPath選擇器查詢(xún)頁(yè)面元素是該框架賴(lài)以起家的絕活。提及腳本選擇器,最早可以追溯到Dean Edwards的cssQuery和Simon Willison的getElementsBySelector,但是在早期的Web編程環(huán)境中,面對(duì)惡劣的瀏覽器環(huán)境和粗糙的Web應(yīng)用,這些選擇器的實(shí)現(xiàn)只能被當(dāng)作內(nèi)部實(shí)驗(yàn),沒(méi)有應(yīng)用市場(chǎng)。而到了2005年,互聯(lián)網(wǎng)已經(jīng)進(jìn)入Web 2.0和Ajax的新時(shí)代,1984年出生的天才少年John Resig在先行者的啟發(fā)下開(kāi)始探索JavaScript選擇器技術(shù),并在一年后正式發(fā)布了jQuery 1.0,迅速紅遍全球,流行程度堪比搖滾巨星。
人都有一種惰性,或者說(shuō)是習(xí)慣吧,用慣了Java作為開(kāi)發(fā)語(yǔ)言,就不習(xí)慣.NET的編程環(huán)境。同樣,如果你習(xí)慣了CSS的用法及其選擇網(wǎng)頁(yè)標(biāo)簽的方式,再來(lái)學(xué)習(xí)jQuery的選擇器你會(huì)倍感親切,甚至于入迷。jQuery完全仿制了CSS選擇器的設(shè)計(jì)思路和用法,讓廣大的初學(xué)者和整日為獲取網(wǎng)頁(yè)節(jié)點(diǎn)而搔首的開(kāi)發(fā)人員快速上手。
jQuery靈巧、便捷,并能夠按著人的思維去編寫(xiě)代碼,這實(shí)在是一件很令人興奮的事情。難怪但凡接觸過(guò)jQuery的初學(xué)者都會(huì)對(duì)它愛(ài)不釋手,也難怪jQuery在眾
JavaScript流行框架中能快速殺出一條血路,并得到廣大草根編程人員的喜愛(ài)。
很多讀者和開(kāi)發(fā)人員接觸jQuery之后,都會(huì)身不由己地迷戀于jQuery的優(yōu)雅和便捷,錯(cuò)誤地認(rèn)為它就是一種高效的JavaScript編程方法,于是在前端開(kāi)發(fā)中毫無(wú)節(jié)制地使用jQuery匹配和操作網(wǎng)頁(yè)元素。這種行為本無(wú)可厚非,但是我們不應(yīng)忘記,jQuery僅是JavaScript功能的外包裝。因此在學(xué)習(xí)和使用jQuery的過(guò)程中,讀者應(yīng)該首先樹(shù)立以下兩種意識(shí)。
1. 執(zhí)行效率是編寫(xiě)腳本的第一要?jiǎng)?wù)
jQuery經(jīng)過(guò)多個(gè)版本的磨煉,特別是新的獨(dú)立開(kāi)發(fā)的Sizzle選擇器引擎,使jQuery匹配元素的速度達(dá)到了新的高度,可以毫不夸張地說(shuō)jQuery已是業(yè)界第一。但是,無(wú)論Sizzle選擇器的速度如何優(yōu)化,它都是在JavaScript原生方法的基礎(chǔ)上進(jìn)行打包的,這種打包過(guò)程雖然節(jié)省了用戶(hù)編寫(xiě)代碼的工作量,但是卻增加了代碼的執(zhí)行速度。因此,在可能的條件下,建議讀者不要完全拋棄JavaScript原生的選擇器方法,適當(dāng)混合使用jQuery、DOM和JavaScript能夠提升程序的執(zhí)行效率。例如,offset(獲取頁(yè)面上的各種尺寸和位置數(shù)據(jù))、創(chuàng)建和插入DOM節(jié)點(diǎn)的方法(如append, before)都是JQuery速度的瓶頸,在必要的情況下,讀者完全不用它們,而直接使用DOM原生方法會(huì)更加高效。正是由于這個(gè)原因,本書(shū)在講解jQuery選擇器及其各種DOM元素的操作過(guò)程中,都會(huì)對(duì)比JavaScript設(shè)計(jì)相同效果或功能的實(shí)現(xiàn)方法,讓讀者能夠在學(xué)習(xí)后輩技術(shù)的同時(shí),不要忘記老一輩技術(shù)的實(shí)現(xiàn)途徑。很多初學(xué)者由于習(xí)慣了jQuery開(kāi)發(fā)方式,竟然不會(huì)使用JavaScript進(jìn)行開(kāi)發(fā),這實(shí)在是件很不幸的事情。
2. 理解jQuery設(shè)計(jì)模式和工作機(jī)制是學(xué)習(xí)和提升jQuery開(kāi)發(fā)水平的關(guān)鍵
jQuery框架的源代碼雖然僅有4000多行,但是它設(shè)計(jì)得精巧和復(fù)雜,非一般讀者所能夠讀懂,但是即便如此,對(duì)于每一位初學(xué)者來(lái)說(shuō),我們都應(yīng)該盡力理解框架中每一行代碼的功能,以及各行代碼之間的邏輯關(guān)系,這對(duì)于正確和高效地使用jQuery是至關(guān)重要的。同時(shí)當(dāng)程序發(fā)生錯(cuò)誤時(shí),我們也能夠通過(guò)瀏覽器簡(jiǎn)單的錯(cuò)誤提示快速找到癥結(jié)所在。正所謂知其然,也應(yīng)知其所以然。本書(shū)在講解jQuery框架的使用方法的同時(shí),把更多的精力投入到j(luò)Query框架的內(nèi)部,揭秘jQuery框架的內(nèi)部邏輯關(guān)系。相信讀者在閱讀本書(shū)的過(guò)程中,會(huì)對(duì)jQuery內(nèi)核有更深入的認(rèn)識(shí)。
關(guān)于本書(shū)
本書(shū)從前臺(tái)開(kāi)發(fā)人員的角度進(jìn)行選材,主要研究jQuery框架的設(shè)計(jì)模式、實(shí)現(xiàn)機(jī)制和jQuery框架的一般用法、擴(kuò)展應(yīng)用及其實(shí)戰(zhàn)演練。全書(shū)共分為10章,簡(jiǎn)單介紹如下。
第1章 jQuery起步,重點(diǎn)介紹JavaScript及其框架發(fā)展概述,如何使用jQuery,如何編寫(xiě)自己的第一個(gè)示例,以及jQuery框架的基本特性。
第2章 jQuery解密技術(shù),重點(diǎn)介紹jQuery框架的原型設(shè)計(jì)思路和模式,詳細(xì)分解選擇器接口和選擇器引擎Sizzle的結(jié)構(gòu)和工作機(jī)制,另外還詳細(xì)講解jQuery對(duì)象的數(shù)據(jù)結(jié)構(gòu)和基本操作。
第3章 高效選擇的技巧與原理,重點(diǎn)講解jQuery的CSS選擇器用法,以及這些選擇器類(lèi)型的實(shí)現(xiàn)方法。
第4章 文檔對(duì)象的操作及其高效實(shí)踐,重點(diǎn)講解jQuery如何操作文檔結(jié)構(gòu)和元素,如何控制頁(yè)面CSS的樣式。同時(shí),還就JavaScript實(shí)現(xiàn)方法進(jìn)行詳細(xì)講解,以方便讀者橫向比較兩者實(shí)現(xiàn)途徑的異同,從而更加深刻地理解jQuery的操作機(jī)制。
第5章 事件封裝機(jī)制與解析,重點(diǎn)講解jQuery如何封裝JavaScript的事件處理機(jī)制,并介紹如何使用JavaScript來(lái)定義jQuery的事件處理方法。
第6章 動(dòng)畫(huà)效果設(shè)計(jì)及其高效實(shí)踐,重點(diǎn)講解jQuery在設(shè)計(jì)動(dòng)畫(huà)方面的優(yōu)勢(shì),以及如何使用jQuery設(shè)計(jì)常規(guī)動(dòng)畫(huà)方法,并就JavaScript實(shí)現(xiàn)相同動(dòng)畫(huà)效果進(jìn)行講解。
第7章 Ajax異步通信高效實(shí)踐,講解Ajax異步通信的原理,并根據(jù)這個(gè)原理分解jQuery是如何實(shí)現(xiàn)這些異步通信的方法。
第8章 高效開(kāi)發(fā)和使用插件,重點(diǎn)講解如何擴(kuò)展jQuery公共函數(shù)、jQuery對(duì)象方法和jQuery選擇器,并通過(guò)幾個(gè)典型案例演示這些擴(kuò)展方法。
第9章 jQuery輔助工具,重點(diǎn)講解jQuery公共函數(shù)工具,以及附加的緩存數(shù)據(jù)和數(shù)據(jù)隊(duì)列處理,還介紹一些輔助工具的使用。
第10章 使用jQuery打造Ajax異步交互式動(dòng)態(tài)網(wǎng)站,通過(guò)一個(gè)動(dòng)態(tài)演示網(wǎng)站的架設(shè)幫助讀者認(rèn)識(shí)jQuery在網(wǎng)站開(kāi)發(fā)中的角色。
讀者對(duì)象
本書(shū)適合網(wǎng)頁(yè)制作的初學(xué)者,廣大網(wǎng)頁(yè)制設(shè)計(jì)師和前端技術(shù)人員。 讀者在閱讀本書(shū)之前,應(yīng)該初步掌握HTML、CSS和JavaScript語(yǔ)言的基礎(chǔ)知識(shí),特別是能夠初步使用JavaScript。
本文鏈接:http://www.95time.cn/news/book/2010/8182.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁(yè) 犀利開(kāi)發(fā)——jQuery內(nèi)核詳解與實(shí)踐 [1] 下一頁(yè)
|