注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合jQuery技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理

jQuery技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理

jQuery技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理

定 價(jià):¥99.00

作 者: 高云 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序語言與軟件開發(fā) 計(jì)算機(jī)與互聯(lián)網(wǎng) 語言與開發(fā)工具

ISBN: 9787111440826 出版時(shí)間: 2014-01-01 包裝: 平裝
開本: 16開 頁數(shù): 616 字?jǐn)?shù):  

內(nèi)容簡介

  《jQuery技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理》由阿里巴巴資深前端開發(fā)工程師撰寫,從源代碼角度全面而系統(tǒng)地解讀了jQuery的17個(gè)模塊的架構(gòu)設(shè)計(jì)理念和內(nèi)部實(shí)現(xiàn)原理,旨在幫助讀者參透jQuery中的實(shí)現(xiàn)技巧和技術(shù)精髓,同時(shí)本書也對廣大開發(fā)者如何通過閱讀源代碼來提升編碼能力和軟件架構(gòu)能力提供了指導(dǎo)?!秊Query技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理》首先通過“總體架構(gòu)”梳理了各個(gè)模塊的分類、功能和依賴關(guān)系,讓大家對jQuery的工作原理有大致的印象;進(jìn)而通過“構(gòu)造jQuery對象”章節(jié)分析了構(gòu)造函數(shù)jQuery的各種用法和內(nèi)部構(gòu)造過程;接著詳細(xì)分析了底層支持模塊的源碼實(shí)現(xiàn),包括:選擇器Sizzle、異步隊(duì)列Deferred、數(shù)據(jù)緩存Data、隊(duì)列Queue、瀏覽器功能測試Support;最后詳細(xì)分析了功能模塊的源碼實(shí)現(xiàn),包括:屬性操作Attributes、事件系統(tǒng)Events、DOM遍歷Traversing、DOM操作Manipulation、樣式操作CSS、異步請求Ajax、動(dòng)畫Effects。本書在分析每個(gè)模塊時(shí)均采用由淺入深的方式,先概述功能、用法、結(jié)構(gòu)和實(shí)現(xiàn)原理,然后介紹關(guān)鍵步驟和分析源碼實(shí)現(xiàn)。讓讀者不僅知其然,而且知其所以然。事實(shí)上,本書的根本價(jià)值在于傳達(dá)一種通過閱讀源碼快速成長的方式。無論是前端新人,還是經(jīng)驗(yàn)豐富的老手,只要是對JavaScript感興趣的開發(fā)人員,都會(huì)從本書中受益。

作者簡介

  高云,阿里巴巴資深前端開發(fā)工程師(花名墨智),擁有豐富的前端開發(fā)經(jīng)驗(yàn),擅長HTML5、CSS、JavaScript等Web開發(fā)技術(shù)和Java技術(shù),對JavaScript相關(guān)技術(shù)的應(yīng)用與實(shí)現(xiàn)原理有深入研究和獨(dú)到見解。 TOP 其它信息 頁數(shù):616版次: 第1版 開本:16

圖書目錄

前言
第一部分 總體架構(gòu)
第1章 總體架構(gòu)
1.1 設(shè)計(jì)理念
1.2 總體架構(gòu)
1.3 自調(diào)用匿名函數(shù)
1.4 總結(jié)
第二部分 構(gòu)造jQuery對象
第2章 構(gòu)造jQuery對象
2.1 構(gòu)造函數(shù)jQuery
2.1.1 jQuery( selector [, context] )
2.1.2 jQuery( html [, ownerDocument] )、jQuery( html, props )
2.1.3 jQuery( element )、jQuery( elementArray )
2.1.4 jQuery( object )
2.1.5 jQuery( callback )
2.1.6 jQuery( jQuery object )
2.1.7 jQuery
2.2 總體結(jié)構(gòu)
2.3 jQuery.fn.init( selector, context, rootjQuery )
2.3.1 12個(gè)分支
2.3.2 源碼分析
2.3.3 小結(jié)
2.4 jQuery.buildFragment( args, nodes, scripts )
2.4.1 實(shí)現(xiàn)原理
2.4.2 源碼分析
2.4.3 小結(jié)
2.5 jQuery.clean( elems, context, fragment, scripts )
2.5.1 實(shí)現(xiàn)原理
2.5.2 源碼分析
2.5.3 小結(jié)
2.6 jQuery.extend、jQuery.fn.extend
2.6.1 如何使用
2.6.2 源碼分析
2.7 原型屬性和方法
2.7.1 .selector、.jquery、.length、.size
2.7.2 .toArray、.get( [index] )
2.7.3 .each( function(index, Element) )、jQuery.each( collection, callback (indexInArray, valueOfElement) )
2.7.4 .map( callback(index, domElement) )、jQuery.map( arrayOrObject, callback(value, indexOrKey) )
2.7.5 .pushStack( elements, name, arguments )
2.7.6 .end
2.7.7 .eq( index )、.first、.last、.slice( start [, end] )
2.7.8 .push( value, ... )、.sort( [orderfunc] )、.splice( start,deleteCount, value, ... )
2.7.9 小結(jié)
2.8 靜態(tài)屬性和方法
2.8.1 jQuery.noConflict( [removeAll] )
2.8.2 類型檢測:jQuery.isFunction( obj )、jQuery.isArray( obj )、jQuery.isWindow( obj )、jQuery.isNumeric( value )、jQuery.type( obj )、jQuery.isPlainObject( object )、jQuery.isEmptyObject( object )
2.8.3 解析JSON和XML:jQuery.parseJSON( data )、jQuery.parseXML( data )
2.8.4 jQuery.globalEval( code )
2.8.5 jQuery.camelCase( string )
2.8.6 jQuery.nodeName( elem, name )
2.8.7 jQuery.trim( str )
2.8.8 數(shù)組操作方法:jQuery.makeArray( obj )、jQuery.inArray( value, array [, fromIndex] )、jQuery.merge( first, second )、jQuery.grep( array, function(elementOfArray, indexInArray) [, invert] )
2.8.9 jQuery.guid、jQuery.proxy( function, context )
2.8.10 jQuery.access( elems, key, value, exec, fn( elem, key, value ), pass )
2.8.11 jQuery.error( message )、jQuery.noop、jQuery.now
2.8.12 瀏覽器嗅探:jQuery.uaMatch( ua )、jQuery.browser
2.8.13 小結(jié)
2.9 總結(jié)
第三部分 底層支持模塊
第3章 選擇器Sizzle
3.1 總體結(jié)構(gòu)
3.2 選擇器表達(dá)式
3.3 設(shè)計(jì)思路
3.4 Sizzle( selector, context, results, seed )
3.5 正則chunker
3.6 Sizzle.find( expr, context, isXML )
3.7 Sizzle.filter( expr, set, inplace, not )
3.8 Sizzle.selectors.relative
3.8.1 “+”
3.8.2 “>”
3.8.3 ““
3.8.4 “~”
3.8.5 dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML )
3.8.6 dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML )
3.9 Sizzle.selectors
3.9.1 Sizzle.selectors.order
3.9.2 Sizzle.selectors.match/leftMatch
3.9.3 Sizzle.selectors.find
3.9.4 Sizzle.selectors.preFilter
3.9.5 Sizzle.selectors.filters
3.9.6 Sizzle.selectors.setFilters
3.9.7 Sizzle.selectors.filter
3.10 工具方法
3.10.1 Sizzle.uniqueSort( results )
3.10.2 sortOrder( a, b )
3.10.3 Sizzle.contains( a, b )
3.10.4 Sizzle.error( msg )
3.10.5 Sizzle.getText( elem )
3.11 便捷方法
3.11.1 Sizzle.matches( expr, set )
3.11.2 Sizzle.matchesSelector( node, expr )
3.12 jQuery擴(kuò)展
3.12.1 暴露Sizzle給jQuery
3.12.2 .find( selector )
3.12.3 .has( target )
3.12.4 .not( selector )、.filter( selector )
3.12.5 .is( selector )
3.12.6 .closest( selectors, context )
3.12.7 .index( elem )
3.12.8 .add( selector, context )
3.12.9 jQuery.filter( expr, elems, not )
3.12.10 :animated
3.12.11 hidden、:visible
3.13 總結(jié)
第4章 異步隊(duì)列Deferred Object
4.1 jQuery.Callbacks( flags )
4.1.1 實(shí)現(xiàn)原理和總體結(jié)構(gòu)
4.1.2 源碼分析
4.1.3 小結(jié)
4.2 jQuery.Deferred( func )
4.2.1 實(shí)現(xiàn)原理和總體結(jié)構(gòu)
4.2.2 源碼分析
4.2.3 小結(jié)
4.3 jQuery.when( deferreds )
4.3.1 實(shí)現(xiàn)原理
4.3.2 源碼分析
4.4 異步隊(duì)列在jQuery中的應(yīng)用
4.5 總結(jié)
第5章 數(shù)據(jù)緩存Data
5.1 實(shí)現(xiàn)原理
5.1.1 為DOM元素附加數(shù)據(jù)
5.1.2 為JavaScript對象附加數(shù)據(jù)
5.2 總體結(jié)構(gòu)
5.3 jQuery.acceptData( elem )
5.4 jQuery.data( elem, name, data, pvt )、jQuery._data( elem, name, data, pvt )
5.4.1 如何使用
5.4.2 源碼分析
5.4.3 jQuery._data( elem, name, data )
5.4.4 小結(jié)
5.5 .data( key,value )
5.5.1 如何使用
5.5.2 源碼分析
5.5.3 小結(jié)
5.6 jQuery.removeData( elem,name,pvt )、.removeData( key )
5.6.1 如何使用
5.6.2 源碼分析
5.6.3 小結(jié)
5.7 .removeData( key )
5.8 jQuery.cleanData( elems )
5.8.1 應(yīng)用場景
5.8.2 源碼分析
5.8.3 小結(jié)
5.9 jQuery.hasData( elem )
5.10 總結(jié)
第6章 隊(duì)列Queue
6.1 如何使用
6.1.1 Ajax隊(duì)列
6.1.2 動(dòng)畫隊(duì)列+ Ajax隊(duì)列
6.1.3 基于JavaScript對象
6.2 實(shí)現(xiàn)原理
6.3 總體結(jié)構(gòu)
6.4 jQuery.queue( elem,type,data )
6.5 jQuery.dequeue( elem,type )
6.6 .queue( type,data )
6.7 .dequeue( type )
6.8 .delay( time,type )
6.9 .clearQueue( type )
6.10 jQuery._mark( elem,type )、jQuery._unmark( force,elem,type )
6.11 .promise( type,object )
6.11.1 如何使用
6.11.2 實(shí)現(xiàn)原理
6.11.3 源碼分析
6.11.4 handleQueueMarkDefer( elem,type,src )
6.12 總結(jié)
第7章 瀏覽器功能測試Support
7.1 總體結(jié)構(gòu)
7.2 DOM測試(15項(xiàng))
7.2.1 leadingWhitespace
7.2.2 tbody
7.2.3 htmlSerialize
7.2.4 hrefNormalized
7.2.5 checkOn
7.2.6 noCloneChecked
7.2.7 optSelected
7.2.8 optDisabled
7.2.9 getSetAttribute
7.2.10 deleteExpando
7.2.11 enctype
7.2.12 html5Clone
7.2.13 radioValue
7.2.14 checkClone
7.2.15 appendChecked
7.3 樣式測試(3項(xiàng))
7.3.1 style
7.3.2 opacity
7.3.3 cssFloat
7.4 盒模型測試(10項(xiàng))
7.4.1 reliableMarginRight
7.4.2 reliableHiddenOffsets
7.4.3 boxModel
7.4.4 inlineBlockNeedsLayout
7.4.5 shrinkWrapBlocks
7.4.6 doesNotAddBorder、doesAddBorderForTableAndCells
7.4.7 fixedPosition
7.4.8 subtractsBorderForOverflowNotVisible
7.4.9 doesNotIncludeMarginInBodyOffset
7.5 事件測試(4項(xiàng))
7.5.1 noCloneEvent
7.5.2 submitBubbles、changeBubbles、focusinBubbles
7.6 Ajax測試(2項(xiàng))
7.6.1 ajax
7.6.2 cors
7.7 總結(jié)
第四部分 功能模塊
第8章 屬性操作Attributes
8.1 總體結(jié)構(gòu)
8.2 jQuery.attr( elem, name, value, pass )
8.2.1 源碼分析
8.2.2 boolHook
8.2.3 nodeHook
8.2.4 jQuery.attrHooks
8.2.5 小結(jié)
8.3 .attr( name, value )
8.4 jQuery.removeAttr( elem, value )
8.4.1 源碼分析
8.4.2 小結(jié)
8.5 .removeAttr( name )
8.6 jQuery.prop( elem, name, value )
8.6.1 源碼分析
8.6.2 jQuery.propHooks
8.6.3 小結(jié)
8.7 .prop( name, value )
8.8 .removeProp( name )
8.9 .addClass( className )
8.9.1 源碼分析
8.9.2 小結(jié)
8.10 .removeClass( [className] )
8.10.1 源碼分析
8.10.2 小結(jié)
8.11 .toggleClass( [className][, switch] )
8.11.1 源碼分析
8.11.2 小結(jié)
8.12 .hasClass( selector )
8.12.1 源碼分析
8.12.2 小結(jié)
8.13 .val( [value] )
8.13.1 源碼分析
8.13.2 jQuery.valHooks
8.13.3 小結(jié)
8.14 總結(jié)
第9章 事件系統(tǒng)Events
9.1 總體結(jié)構(gòu)
9.2 實(shí)現(xiàn)原理
9.3 jQuery 事件對象
9.3.1 構(gòu)造函數(shù)jQuery.Event( src, props )
9.3.2 原型對象jQuery.Event.prototype
9.3.3 事件屬性修正方法jQuery.event.fix( event )
9.4 綁定事件
9.4.1 .on( events [, selector] [, data] , handler( eventObject ) )
9.4.2 jQuery.event.add( elem, types, handler, data, selector )
9.5 移除事件
9.5.1 .off( events [, selector] [, handler( eventObject ) ] )
9.5.2 jQuery.event.remove( elem, types, handler, selector, mappedTypes )
9.6 事件響應(yīng)
9.6.1 主監(jiān)聽函數(shù)
9.6.2 jQuery.event.dispatch( event )
9.7 手動(dòng)觸發(fā)事件
9.7.1 .trigger( eventType [, extraParameters] )、.triggerHandler( eventType [, extraParameters] )
9.7.2 jQuery.event.trigger( event, data, elem, onlyHandlers )
9.8 事件修正和模擬jQuery.event.special
9.8.1 ready
9.8.2 load
9.8.3 focus、blur
9.8.4 beforeunload
9.8.5 mouseenter、mouseleave
9.8.6 submit
9.8.7 change
9.8.8 focusin、focusout
9.8.9 jQuery.event.simulate( type, elem, event, bubble )
9.9 事件便捷方法
9.10 組合方法
9.10.1 .toggle( handler( eventObject ), handler( eventObject ) [, handler( eventObject )] )
9.10.2 .hover( handlerIn( eventObject ) [, handlerOut( eventObject )] )
9.11 ready 事件
9.11.1 總體結(jié)構(gòu)
9.11.2 .ready( handler )
9.11.3 jQuery.bindReady
9.11.4 jQuery.holdReady( hold )
9.11.5 jQuery.ready( wait )
9.12 總結(jié)
第10章 DOM遍歷Traversing
10.1 總體結(jié)構(gòu)
10.2 遍歷函數(shù)
10.3 工具函數(shù)
10.3.1 jQuery.dir( elem, dir, until )
10.3.2 jQuery.nth( cur, result, dir, elem )
10.3.3 jQuery.sibling( n, elem )
10.4 模板函數(shù)
10.5 總結(jié)
第11章 DOM操作Manipulation
11.1 總體結(jié)構(gòu)
11.2 插入元素
11.2.1 核心方法.domManip( args, table, callback )
11.2.2 .append( content [, content] )
11.2.3 .prepend( content [, content] )
11.2.4 .before( content [, content] )
11.2.5 .after( content [, content] )
11.2.6 .appendTo( target )、.prependTo( target )、.insertBefore( target )、.insertAfter( target )
11.2.7 .html( [value] )
11.2.8 .text( [text] )
11.3 刪除元素
11.3.1 .remove( selector, keepData )
11.3.2 .empty
11.3.3 .detach( selector )
11.4 復(fù)制元素
11.4.1 .clone( dataAndEvents, deepDataAndEvents )
11.4.2 jQuery.clone( elem, dataAndEvents, deepDataAndEvents )
11.4.3 cloneFixAttributes( src, dest )
11.5 替換元素
11.5.1 .replaceWith( value )
11.5.2 .replaceAll( target )
11.6 包裹元素
11.6.1 .wrapAll( html )
11.6.2 .wrapInner( html )
11.6.3 .wrap( html )
11.6.4 .unwrap
11.7 總結(jié)
第12章 樣式操作CSS
12.1 內(nèi)聯(lián)樣式、計(jì)算樣式
12.1.1 總體結(jié)構(gòu)
12.1.2 .css( name, value )
12.1.3 jQuery.style( elem, name, value, extra )
12.1.4 jQuery.css( elem, name, extra )
12.1.5 curCSS( elem, name )、getComputedStyle( elem, name )、currentStyle( elem, name )
12.1.6 jQuery.cssHooks
12.2 坐標(biāo)Offset
12.2.1 總體結(jié)構(gòu)
12.2.2 .offset( options )
12.2.3 jQuery.offset.setOffset( elem, options, i )
12.2.4 jQuery.offset.bodyOffset( body )
12.2.5 .position
12.2.6 .offsetParent
12.2.7 .scrollLeft( val )、.scrollTop( val )
12.3 尺寸Dimensions
12.3.1 總體結(jié)構(gòu)
12.3.2 getWH( elem, name, extra )
12.3.3 .innerHeight、.innerWidth
12.3.4 .outerHeight( margin )、.outerWidth( margin )
12.3.5 .height( size )、.width( size )
12.3.6 小結(jié)
12.4 總結(jié)
第13章 異步請求Ajax
13.1 總體結(jié)構(gòu)
13.2 jQuery.ajax( url, options )
13.3 前置過濾器、請求發(fā)送器的初始化和執(zhí)行
13.3.1 初始化
13.3.2 執(zhí)行
13.4 前置過濾器
13.4.1 json、jsonp
13.4.2 script
13.4.3 小結(jié)
13.5 請求發(fā)送器
13.5.1 script
13.5.2 XMLHttpRequest
13.5.3 小結(jié)
13.6 數(shù)據(jù)轉(zhuǎn)換器
13.6.1 初始化
13.6.2 執(zhí)行
13.6.3 小結(jié)
13.7 Ajax事件
13.8 便捷方法
13.8.1 jQuery.get( url, data, callback, type )、jQuery.post( url, data, callback, type )
13.8.2 jQuery.getJSON( url, data, callback )、jQuery.getScript( url, callback )
13.8.3 .load( url, params, callback )
13.9 工具方法
13.9.1 .serialize
13.9.2 jQuery.param( a, traditional )
13.9.3 .serializeArray
13.10 總結(jié)
第14章 動(dòng)畫Effects
14.1 總體結(jié)構(gòu)
14.2 動(dòng)畫入口
14.2.1 .animate( prop, speed, easing, callback )
14.2.2 jQuery.speed(speed, easing, fn )
14.2.3 doAnimation
14.2.4 jQuery.fx( elem, options, prop )
14.2.5 jQuery.fx.prototype.show
14.2.6 jQuery.fx.prototype.hide
14.2.7 小結(jié)
14.3 動(dòng)畫執(zhí)行
14.3.1 jQuery.fx.prototype.custom( from, to, unit )
14.3.2 jQuery.fx.tick
14.3.3 jQuery.fx.prototype.step( gotoEnd )
14.3.4 jQuery.easing
14.3.5 jQuery.fx.prototype.update
14.3.6 jQuery.fx.step
14.4 停止動(dòng)畫.stop( type, clearQueue, gotoEnd )
14.5 便捷方法
14.5.1 生成動(dòng)畫樣式集genFx( type, num )
14.5.2 顯示隱藏.show/hide/toggle
14.5.3 漸顯漸隱.fadeIn/fadeOut/fadeTo/fadeToggle
14.5.4 滑入滑出.slideDown/slidUp/slideToggle
14.6 總結(jié)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)