Index
A
- $.ajax() method / Accepting configuration parameters
- addEventListener() methods
- applications
- developing, with Composite Pattern / Using the Composite Pattern to develop applications
- Underscore.js templates, using / Using Underscore.js templates in our applications
- Handlebars.js templates, using / Using Handlebars.js in our applications
- Array.reduce() method
- reference / Lazy Loading Modules
- attachEvent() method
- Australian National University (ANU) / Writing methods that accept callbacks
B
- Babel transpiler
- URL / Introducing ES6 Modules
- broker / Introducing the Publish/Subscribe Pattern
- Builder Pattern
- about / Introducing the Builder Pattern
- adopting, by jQuery / How it is adopted by jQuery's API
- using, by jQuery internally / How it is used by jQuery internally
- using, in applications / How to use it in our applications
C
- Callback Hell
- callbacks
- about / Programming with callbacks
- programming with / Programming with callbacks
- simple callbacks, using in JavaScript / Using simple callbacks in JavaScript
- setting, as object properties / Setting callbacks as object properties
- using, in jQuery applications / Using callbacks in jQuery applications
- methods, writing / Writing methods that accept callbacks
- callbacks, orchestrating
- about / Orchestrating callbacks
- queuing, in order execution / Queuing in order execution
- Callback Hell anti-pattern, avoiding / Avoiding the Callback Hell anti-pattern
- running concurrently / Running concurrently
- categories module / The categories module
- CDNs
- about / Using CDNs
- using / Using CDNs
- JSDelivr API, using / Using JSDelivr API
- closure
- Closure Compiler
- reference / Bundling and minifying resources
- closures
- URL / The IIFE building block
- common JavaScript code
- optimizing / Optimizing common JavaScript code
- for loops, writing for / Writing better for loops
- Composite Pattern
- about / The Composite Pattern
- using, by jQuery / How the Composite Pattern is used by jQuery
- comparing, with plain DOM API benefits / Comparing the benefits over the plain DOM API
- used, for developing applications / Using the Composite Pattern to develop applications
- sample use case / A sample use case
- Collection Implementation / The Composite Collection Implementation
- example execution / An example execution
- alternative implementations / Alternative implementations
- pairing, with Iterator Pattern / How it pairs with the Composite Pattern
- configuration parameters
- accepting / Accepting configuration parameters
- Content Delivery Network (CDN) / Using CDNs
- counter module / The counter module
- CSS Selectors / The jQuery DOM Traversal API
- custom event namespacing
- custom events
- in jQuery / Custom events in jQuery
- used, for implementing Publish/Subscribe Pattern / Implementing a Pub/Sub scheme using custom events
D
- Dashboard application
- reusable plugins, using / Using our plugin in our Dashboard application
- dashboard example
- Publish/Subscribe Pattern, using / Using Pub/Sub on the dashboard example
- dashboard module / The main dashboard module
- deferred observer / The categories module
- deferred observers / The counter module
- Delegated Event Observer Pattern
- about / Introducing the Delegated Event Observer Pattern
- used, for simplifying code / How it simplifies our code
- memory usage benefits, comparing / Compare the memory usage benefits
- Delegate Observers
- using / Using Delegate Observers
- descendant CSS selector
- reference / Styling and animating
- Document Fragment
- Document Fragments
- reference / How it is adopted by jQuery's API
- Document Object Mode (DOM)
- URL / jQuery and DOM scripting
- manipulating, with jQuery / Manipulating the DOM using jQuery
- DOM API / The jQuery DOM Traversal API
- DOM Level 2 Event specification
- DOM manipulations, improving
- about / Improving DOM manipulations
- DOM elements, creating / Creating DOM elements
- animating / Styling and animating
- styling / Styling and animating
- detached elements, manipulating / Manipulating detached elements
- Flyweight Pattern / Introducing the Flyweight Pattern
- DOM scripting
- and jQuery / jQuery and DOM scripting
- DOM traversals, minimizing
- about / Minimizing DOM traversals
- jQuery objects, caching / Caching jQuery objects
- element traversals, scoping / Scoping element traversals
- jQuery methods, chaining / Chaining jQuery methods
E
- $.extend() helper method
- efficient jQuery code
- writing / Writing efficient jQuery code
- DOM traversals, minimizing / Minimizing DOM traversals
- overuse, avoiding / Don't overdo it
- DOM manipulations, improving / Improving DOM manipulations
- Delegate Observers, using / Using Delegate Observers
- $.noop(), using / Using $.noop()
- $.single plugin, using / Using the $.single plugin
- Encapsulation
- ES5 Strict Mode
- using / Using ES5 Strict Mode
- ES6 modules
- about / Introducing ES6 Modules
- URL / Introducing ES6 Modules
- event attributes
- event listeners
- removing, URL / Avoid memory leaks
- event object
F
- $.fn.addClass() method / Working on Composite Collection Objects
- $.fn.closest() method
- $.fn.data() method / Implementing a stateful jQuery Plugin
- $.fn.end() method
- reference / Don't overdo it
- $.fn.ready() method / The document-ready observer
- Facade Pattern
- about / Introducing the Facade Pattern
- benefits / The benefits of this pattern
- adopting, by jQuery / How it is adopted by jQuery
- Facades
- using, in applications / Using Facades in our applications
- Factories
- using, in applications / Using Factories in our applications
- Factory Pattern
- about / Introducing the Factory Pattern
- key concept / Introducing the Factory Pattern
- adopting, by jQuery / How it is adopted by jQuery
- falsy JavaScript value
- reference / Writing better for loops
- Flyweight Pattern
- function Data()
- URL / The jQuery on method
G
- $.getScript() method
- URL / Retrieving HTML templates asynchronously
- reference / Lazy Loading Modules
- generic iterator function / How the Iterator Pattern is used by jQuery
- getter method
- implementing / Implementing getter and setter methods
- getValues method / The Composite Collection Implementation
- global namespace / Avoiding global variables with Namespaces, The Revealing Module Pattern
- Google’s JavaScript Style Guide
- URL / The wide acceptance
- grunt-contrib-concat project
H
- Handlebars.js
- about / Introducing Handlebars.js
- URL / Introducing Handlebars.js, Using Handlebars.js in our applications, Pre-compiling templates
- using, in applications / Using Handlebars.js in our applications
- template pre-compilation, URL / Pre-compiling templates
- HTML templates
- separating, from JavaScript code / Separating HTML templates from JavaScript code, Separating HTML templates from JavaScript code
- retrieving asynchronously / Retrieving HTML templates asynchronously
- adopting, in existing implementation / Adopting it in an existing implementation
- moderation / Moderation is best in all things
I
- IIFE
- used, for wrapping jQuery Plugin / Wrapping with an IIFE
- about / Wrapping with an IIFE
- IIFE-contained module variant / The IIFE-contained Module variant
- IIFE parameters
- using / Using IIFE parameters
- Immediately Invoked Function Expression (IIFE) / The document-ready observer
- about / The IIFE building block
- URL / The IIFE building block
- increment method / The Composite Collection Implementation
- IndexedDB
- URL / Running concurrently
- informationBox module / The informationBox module
- Iterator Pattern
- about / The Iterator Pattern
- using, by jQuery / How the Iterator Pattern is used by jQuery
- pairing, with Composite Pattern / How it pairs with the Composite Pattern
- using / Where can it be used
J
- JavaScript
- Prototype-based programming model, URL / The Composite Collection Implementation
- JavaScript code
- HTML templates, separating / Separating HTML templates from JavaScript code, Separating HTML templates from JavaScript code
- JavaScript libraries
- URL / Choosing a name
- jQuery
- and DOM scripting / jQuery and DOM scripting
- URL / jQuery and DOM scripting, Manipulating the DOM using jQuery, How the Iterator Pattern is used by jQuery
- used, for manipulating DOM / Manipulating the DOM using jQuery
- Method Chaining / Method Chaining and Fluent Interfaces
- Fluent Interfaces / Method Chaining and Fluent Interfaces
- Composite Pattern, using / How the Composite Pattern is used by jQuery
- GitHub page, URL / How the Composite Pattern is used by jQuery
- Iterator Pattern, using / How the Iterator Pattern is used by jQuery
- Observer Pattern, using / How it is used by jQuery
- Publish/Subscribe Pattern / How it is adopted by jQuery
- custom events / Custom events in jQuery
- code organization, URL / Overview of the implementation
- jQuery-requestAnimationFrame plugin
- reference / Styling and animating
- jQuery-UI Widget Factory
- jQuery.ajaxSetup() method / Accepting configuration parameters
- jQuery.guid / The jQuery on method
- jQuery.noConflict() method
- jQuery applications
- modules, using / Using Modules in jQuery applications
- Mock Object Pattern, using / Using Mock Objects in jQuery applications
- jQuery equivalent method
- URL / Avoid memory leaks
- jQuery implementation
- about / How it is adopted by jQuery
- jQuery DOM Traversal API / The jQuery DOM Traversal API
- property access and manipulation API / The property access and manipulation API
- jQuery JavaScript Style Guide
- URL / The wide acceptance
- jQuery on method / The jQuery on method
- jQuery Plugin
- about / Introducing jQuery Plugins
- principles, following / Following jQuery principles
- characteristics / Following jQuery principles
- $.noConflict(), working with / Working with $.noConflict()
- wrapping, with IIFE / Wrapping with an IIFE
- naming conventions / Choosing a name
- jQuery Plugin Boilerplate
- URL / Using the jQuery Plugin Boilerplate
- using / Using the jQuery Plugin Boilerplate
- methods, adding / Adding methods to your plugin
- jQuery Plugin Registry
- URL / Choosing a name
- jQuery principles
- following / Following jQuery principles
- Composite Collection Objects, working on / Working on Composite Collection Objects
- further chaining / Allowing further chaining
- jQuery Promises
- transforming, to / Transforming to jQuery Promises
- jQuery source viewer
- URL / The jQuery on method
- jQuery Source Viewer
- jQuery v3.0 A+ Promises implementation
- reference / Comparing jQuery and A+ Promises
- JSDelivr API
- using / Using JSDelivr API
- reference / Using JSDelivr API
L
- Lazy Loading Modules
- about / Lazy Loading Modules
- Level 2 Selector API / The jQuery DOM Traversal API
M
- memory usage benefits
- comparing / Compare the memory usage benefits
- Method Chaining / Method Chaining and Fluent Interfaces
- Mockjax jQuery Plugin library
- reference / Implementing a Mock Service
- using / Implementing a Mock Service
- Mock Object Pattern
- about / Introducing the Mock Object Pattern
- using, in jQuery applications / Using Mock Objects in jQuery applications
- actual service requirements, defining / Defining the actual service requirements
- Mock Service, implementing / Implementing a Mock Service
- Mock Service, using / Using the Mock Service
- Module Pattern
- about / The Module Pattern
- Immediately Invoked Function Expression (IIFE) building block / The IIFE building block
- simple IIFE Module Pattern / The simple IIFE Module Pattern
- using, in jQuery / How it is used by jQuery
- namespace parameter module variant / The Namespace Parameter Module variant
- IIFE-contained module variant / The IIFE-contained Module variant
- modules
- about / Modules and Namespaces, Encapsulating internal parts of an implementation
- internal part implementation, encapsulating / Encapsulating internal parts of an implementation
- acceptance / The wide acceptance
- using, in jQuery applications / Using Modules in jQuery applications
- modules, jQuery applications
- using / Using Modules in jQuery applications
- dashboard module / The main dashboard module
- categories module / The categories module
- informationBox module / The informationBox module
- counter module / The counter module
- implementation, overview / Overview of the implementation
- Mustache
- Mutation Observer
N
- $.noConflict()
- working / Working with $.noConflict()
- $.noop()
- using / Using $.noop()
- reference / Using $.noop()
- namespaced events
- namespace parameter module variant / The Namespace Parameter Module variant
- namespaces
- about / Modules and Namespaces, Avoiding global variables with Namespaces
- internal part implementation, encapsulating / Encapsulating internal parts of an implementation
- global variables, avoiding / Avoiding global variables with Namespaces
- benefits / The benefits of these patterns
- acceptance / The wide acceptance
- namespacing / Avoiding global variables with Namespaces
- naming conventions, jQuery Plugin
- selecting / Choosing a name
- NPM
- URL / Choosing a name
O
- object-oriented JavaScript
- URL / The wide acceptance
- Object Literal / How it is adopted by jQuery
- Object Literal Pattern / The Object Literal Pattern, The simple IIFE Module Pattern, The Revealing Module Pattern
- Observer Pattern
- about / Introducing the Observer Pattern
- URL / Introducing the Observer Pattern
- using, in jQuery / How it is used by jQuery
- jQuery.fn.on() method / The jQuery on method
- document-ready observer / The document-ready observer
- sample use case, demonstrating / Demonstrate a sample use case
- comparing, with event attributes / How it is compared with event attributes
- event attributes, comparing with / How it is compared with event attributes
- memory leaks, avoiding / Avoid memory leaks
- and Publish/Subscribe Pattern, differentiating between / How it differs from the Observer Pattern
P
- patterns
- benefits / The benefits of these patterns
- performance tips on jQuery
- reference / Writing efficient jQuery code
- performant CSS selectors
- writing / Writing performant CSS selectors
- placeholder notations, _.tempate() method
- <%= %> notation / Introducing Underscore.js
- <%- %> / Introducing Underscore.js
- <% %> notation / Introducing Underscore.js
- Promises
- about / Introducing the concept of Promises
- using / Using Promises
- jQuery Promise API, using / Using the jQuery Promise API
- advanced concepts / Advanced concepts
- joining / Joining Promises
- using, by jQuery / How jQuery uses Promises
- transforming, to other types / Transforming Promises to other types
- benefits / Summarizing the benefits of Promises
- Promises, chaining
- about / Chaining Promises
- thrown errors, handling / Handling thrown errors
- Promises/A+
- using / Using Promises/A+
- reference / Using Promises/A+
- comparing, with jQuery / Comparing jQuery and A+ Promises
- transforming, to / Transforming to Promises/A+
- Publish/Subscribe Pattern
- about / Introducing the Publish/Subscribe Pattern
- and Observer Pattern, differentiating between / How it differs from the Observer Pattern
- using, by jQuery / How it is adopted by jQuery
- implementing, with custom events / Implementing a Pub/Sub scheme using custom events
- sample use case / Demonstrating a sample use case
- using, on dashboard example / Using Pub/Sub on the dashboard example
- implementation, extending / Extending the implementation
- publishers / Introducing the Publish/Subscribe Pattern
R
- RequireJS
- URL / Lazy Loading Modules
- resources
- bundling / Bundling and minifying resources
- minifying / Bundling and minifying resources
- reusable plugins
- creating / Creating reusable plugins
- configuration parameters, accepting / Accepting configuration parameters
- stateful jQuery Plugins, writing / Writing stateful jQuery plugins
- stateful jQuery Plugin, implementing / Implementing a stateful jQuery Plugin
- instance, destroying / Destroying a plugin instance
- getter method, implementing / Implementing getter and setter methods
- setter methods, implementing / Implementing getter and setter methods
- using, in Dashboard application / Using our plugin in our Dashboard application
- Revealing Module Pattern
- about / The Revealing Module Pattern
S
- $.single plugin
- using / Using the $.single plugin
- <script> tag / Placing scripts near the end of the page
- sample use case, Observer Pattern
- demonstrating / Demonstrate a sample use case
- sample use case, Publish/Subscribe Pattern
- demonstrating / Demonstrating a sample use case
- object, using as broker / Using any object as a broker
- scripts
- placing, near end of page / Placing scripts near the end of the page
- Separation of Concerns
- Separation of Concerns principle / The benefits of this pattern
- setter method
- implementing / Implementing getter and setter methods
- simple callback
- defining / Introducing the Observer Pattern
- simple IIFE Module Pattern
- about / The simple IIFE Module Pattern
- Single Responsibility principle
- URL / The Iterator Pattern
- Sizzle / The jQuery DOM Traversal API, Writing performant CSS selectors
- URL / How it is used by jQuery
- reference / The jQuery DOM Traversal API
- specified Node Types
- stateful jQuery Plugins
- writing / Writing stateful jQuery plugins
- implementing / Implementing a stateful jQuery Plugin
- instance, destroying / Destroying a plugin instance
- strict execution mode
- URL / Wrapping with an IIFE
- strict mode, JavaScript
- URL / Using ES5 Strict Mode
- subscribers / Introducing the Publish/Subscribe Pattern
T
- Tiny
- truthy JavaScript value
- reference / Writing better for loops
U
- UglifyJS
- reference / Bundling and minifying resources
- Underscore.js
- about / Introducing Underscore.js
- using, in applications / Using Underscore.js templates in our applications
- HTML templates, separating from JavaScript code / Separating HTML templates from JavaScript code, Separating HTML templates from JavaScript code
- templates, pre-compiling / Pre-compiling templates
V
- variable
- naming conventions / Manipulating the DOM using jQuery
Y
- YUI Compressor
- reference / Bundling and minifying resources