SlideShare a Scribd company logo
1 of 92
Download to read offline
The DOM Scripting Toolkit:
       jQuery
         Remy Sharp
          Left Logic
Why JS Libraries?

• DOM scripting made easy
Why JS Libraries?

• DOM scripting made easy
• Cross browser work done for you
Why JS Libraries?

• DOM scripting made easy
• Cross browser work done for you
• Puts some fun back in to coding
Why jQuery?
• Lean API, makes your code smaller
Why jQuery?
• Lean API, makes your code smaller
• Small (15k gzip’d), encapsulated, friendly
  library - plays well!
Why jQuery?
• Lean API, makes your code smaller
• Small (15k gzip’d), encapsulated, friendly
  library - plays well!
• Plugin API is really simple
Why jQuery?
• Lean API, makes your code smaller
• Small (15k gzip’d), encapsulated, friendly
  library - plays well!
• Plugin API is really simple
• Large, active community
Why jQuery?
• Lean API, makes your code smaller
• Small (15k gzip’d), encapsulated, friendly
  library - plays well!
• Plugin API is really simple
• Large, active community
• Big boys use it too: Google, BBC, Digg,
  Wordpress, Amazon, IBM.
What’s in jQuery?

• Selectors & Chaining
• DOM manipulation
• Events
• Ajax
• Simple effects
Selectors
$(‘#emails a.subject’);
Selectors

• “Find something, do something with it”
Selectors

• “Find something, do something with it”
• The dollar function
Selectors

• “Find something, do something with it”
• The dollar function
• CSS 1-3 selectors at the core of jQuery
Selectors

• “Find something, do something with it”
• The dollar function
• CSS 1-3 selectors at the core of jQuery
• Custom selectors
CSS Selectors

$(‘div’)
CSS Selectors

$(‘div’)
$(‘div.foo’)
CSS Selectors

$(‘div’)
$(‘div.foo’)
$(‘a[type=”application/pdf”]’)
CSS Selectors

$(‘div’)
$(‘div.foo’)
$(‘a[type=”application/pdf”]’)
$(‘tr td:first-child’)
Custom Selectors

$(‘div:visible’)
Custom Selectors

$(‘div:visible’)
$(‘:animated’)
Custom Selectors

$(‘div:visible’)
$(‘:animated’)
$(‘:input’)
Custom Selectors

$(‘div:visible’)
$(‘:animated’)
$(‘:input’)
$(‘tr:odd’)
Selector Performance
$(‘#email’) // same as getElementById
Selector Performance
$(‘#email’) // same as getElementById
$(‘.email’) // slower on a big DOM
Selector Performance
$(‘#email’) // same as getElementById
$(‘.email’) // slower on a big DOM
// using context
$(‘#emails .subject’)
$(‘.subject’, this)
Selector Performance
$(‘#email’) // same as getElementById
$(‘.email’) // slower on a big DOM
// using context
$(‘#emails .subject’)
$(‘.subject’, this)
// Caching
var subjects = $(‘#emails .subject’);
Chaining
$(‘#emails .subjects’)
   .click()
   .addClass(‘read’);
Chaining

• jQuery returns itself *



* except when requesting string values, such as .css() or .val()
Chaining

• jQuery returns itself *
• We can use the selector once, and keep
    manipulating




* except when requesting string values, such as .css() or .val()
Chaining

• jQuery returns itself *
• We can use the selector once, and keep
    manipulating
• Can reduce size of our code

* except when requesting string values, such as .css() or .val()
Chaining in Action
var image = new Image();
$(image)
 .load(function () {
   // show new image
 })
 .error(function () {
   // handle error
 })
 .attr(‘src’, ‘/path/to/large-image.jpg’);
More Chaining
// simple tabs
$(‘a.tab’).click(function () {
  $(tabs)
    .hide()
    .filter(this.hash)
      .show();
});
Collections
 $(‘#emails .subjects’).each(fn)
Collections

• .each(fn)
  Iterates through a collection applying the
  method
Collections

• .each(fn)
  Iterates through a collection applying the
  method
• .map(fn)
  Iterates through collection, returning array
  from fn
Working the DOM
 $(this).addClass(‘read’).next().show();
DOM Walking
• Navigation: children,
  parent, parents, siblings,
  next, prev
DOM Walking
• Navigation: children,
  parent, parents, siblings,
  next, prev
• Filters: filter, find, not, eq
DOM Walking
• Navigation: children,
  parent, parents, siblings,
  next, prev
• Filters: filter, find, not, eq
• Collections: add, end
DOM Walking
• Navigation: children,
  parent, parents, siblings,
  next, prev
• Filters: filter, find, not, eq
• Collections: add, end
• Tests: is
DOM Walking
•   Navigation: children,      $(‘div’)
    parent, parents, siblings, .find(‘a.subject’)
                                  .click(fn)
    next, prev
                                 .end() // strip filter
• Filters: filter, find, not, eq   .eq(0) // like :first
                                   .addClass(‘highlight’);
• Collections: add, end
• Tests: is
Manipulation
• Inserting: after, append, before, prepend,
  html, text, wrap, clone
Manipulation
• Inserting: after, append, before, prepend,
  html, text, wrap, clone
• Clearing: empty, remove, removeAttr
Manipulation
• Inserting: after, append, before, prepend,
  html, text, wrap, clone
• Clearing: empty, remove, removeAttr
• Style: attr, addClass, removeClass,
  toggleClass, css, hide, show, toggle
Manipulation
• Inserting: after, append, before, prepend,
   html, text, wrap, clone
• Clearing: empty, remove, removeAttr
• Style: attr, addClass, removeClass,
   toggleClass, css, hide, show, toggle
var a = $(document.createElement(‘a’)); // or $(‘<a>’)
a.css(‘opacity’, 0.6).text(‘My Link’).attr(‘href’, ‘/home/’);
$(‘div’).empty().append(a);
Data
• Storing data directly
  against elements can
  cause leaks
Data
• Storing data directly
  against elements can
  cause leaks
• .data() clean way of
  linking data to element
Data
• Storing data directly
  against elements can
  cause leaks
• .data() clean way of
  linking data to element
• All handled by jQuery’s
  garbage collection
Data
•                             $(this).data(‘type’, ‘forward’);
    Storing data directly
    against elements can
                              var types =
    cause leaks               $(‘a.subject’).data(‘type’);
• .data() clean way of        $(‘a.subject’).removeData();
    linking data to element
• All handled by jQuery’s
    garbage collection
Events
$(‘a.subject’).click();
DOM Ready

• Most common event: DOM ready
DOM Ready

• Most common event: DOM ready
 $(document).ready(function () {})
 // or as a shortcut:
 $(function () {})
Binding
• Manages events and garbage collection
Binding
• Manages events and garbage collection
• Event functions are bound to the elements
  matched selector
Binding
• Manages events and garbage collection
• Event functions are bound to the elements
  matched selector
• Also supports .one()
Binding
• Manages events and garbage collection
• Event functions are bound to the elements
  matched selector
• Also supports .one()
 $(‘a.reveal’).bind(‘click’, function(event) {
   // ‘this’ refers to the current element
   // this.hash is #moreInfo - mapping to real element
   $(this.hash).slideDown();
 }).filter(‘:first’).trigger(‘click’);
Helpers
• Mouse: click, dlbclick, mouseover, toggle,
  hover, etc.
Helpers
• Mouse: click, dlbclick, mouseover, toggle,
  hover, etc.
• Keyboard: keydown, keyup, keypress
Helpers
• Mouse: click, dlbclick, mouseover, toggle,
  hover, etc.
• Keyboard: keydown, keyup, keypress
• Forms: change, select, submit, focus, blur
Helpers
• Mouse: click, dlbclick, mouseover, toggle,
  hover, etc.
• Keyboard: keydown, keyup, keypress
• Forms: change, select, submit, focus, blur
• Windows: scroll
Helpers
• Mouse: click, dlbclick, mouseover, toggle,
  hover, etc.
• Keyboard: keydown, keyup, keypress
• Forms: change, select, submit, focus, blur
• Windows: scroll
• Windows, images, scripts: load, error
Custom Events

• Roll your own
Custom Events

• Roll your own
• Bind to element (or elements)
Custom Events

• Roll your own
• Bind to element (or elements)
• Trigger them later and pass data
Custom Events

• Roll your own
• Bind to element (or elements)
• Trigger them later and pass data
 $(‘div.myWidget’).trigger(‘foo’, [123/*id*/]);
 // id access via
 // .bind(‘foo’, function (event, id, etc) {})
Event Namespaces

• Support for event
  subsets via namespaces
Event Namespaces

• Support for event
  subsets via namespaces
• If you don’t want to
  unbind all type X events
  - use namespaces
Event Namespaces

•                              $(‘a’).bind(‘click.foo’, fn);
    Support for event
    subsets via namespaces     $(‘a’).unbind(‘.foo’);
• If you don’t want to
    unbind all type X events
    - use namespaces
Ajax
$.ajax({ url : ‘/foo’, success : bar });
Ajax Made Easy
• Cross browser, no hassle.
Ajax Made Easy
• Cross browser, no hassle.
• $.ajax does it all
Ajax Made Easy
• Cross browser, no hassle.
• $.ajax does it all
• Helpers $.get, $.getJSON, $.getScript,
  $.post, $.load
Ajax Made Easy
• Cross browser, no hassle.
• $.ajax does it all
• Helpers $.get, $.getJSON, $.getScript,
  $.post, $.load
• All Ajax requests sends:
  X-Requested-With = XMLHttpRequest
$.ajax
$(‘form.register’).submit(function () {
  var el = this; // cache for use in success function
  $.ajax({
    url : $(this).attr(‘action’),
    data : { ‘username’ : $(‘input.username’).val() }, // ‘this’ is the link
    beforeSend : showValidatingMsg, // function
    dataType : ‘json’,
    type : ‘post’,
    success : function (data) {
       // do something with data - show validation message
    },
    error : function (xhr, status, e) {
       // handle the error - inform the user of problem
       console.log(xhr, status, e);
    }
  });
  return false; // cancel default browser action
});
Effects
$(this).slideDown();
Base Effects
$(‘div:hidden’).show(200, fn);
$(‘div:visible’).hide(200);
$(‘div’).fadeIn(200);
$(‘div’).slideDown(100);
Base Effects
$(‘div:hidden’).show(200, fn);
$(‘div:visible’).hide(200);
$(‘div’).fadeIn(200);
$(‘div’).slideDown(100);
$(‘div’).animate({
  ‘opacity’ : 0.5,
  ‘left’ : ‘-=10px’
}, ‘slow’, fn)
Utilities
$.browser.version
Utilities

• Iterators: each, map, grep
Utilities

• Iterators: each, map, grep
• Browser versions, model and boxModel
  support
Utilities

• Iterators: each, map, grep
• Browser versions, model and boxModel
  support
• isFunction
Core Utilities
• jQuery can plays with others!
Core Utilities
• jQuery can plays with others!
 $j = $.noConflict();
 $j === $ // false
Core Utilities
• Extend jQuery, merge objects and create
  settings from defaults
Core Utilities
• Extend jQuery, merge objects and create
  settings from defaults


 var defaults = { ‘limit’ : 10, ‘dataType’ : ‘json’ };
 var options = { ‘limit’ : 5, ‘username’ : ‘remy’ };
 var settings = $.extend({}, defaults, options);
 // settings = { ‘limit’ : 5, ‘dataType’ : ‘json’,
 ‘username’ : ‘remy’ }
Plugins
$(‘#emails .subjects’).doMagic()
Plugins

• Simple to write
Plugins

• Simple to write
• Makes your code more reusable
Plugins

• Simple to write
• Makes your code more reusable
• Don’t break the chain!
Simple Plugin
// wrap in anonymous function to use $
(function ($) {
 $.fn.log = function () {
   console.log(this);
   // returning continues the chain
   return this; // this is the jQuery collection
 };
})(jQuery);
More Info
                      Resources:
Remy Sharp:
                      jquery.com
remy@leftlogic.com
                      docs.jquery.com
leftlogic.com
                      groups.google.com/group/
                      jquery-en
remysharp.com
                      ui.jquery.com
                      learningjquery.com
                      jqueryfordesigners.com

More Related Content

What's hot

Unobtrusive javascript with jQuery
Unobtrusive javascript with jQueryUnobtrusive javascript with jQuery
Unobtrusive javascript with jQuery
Angel Ruiz
 

What's hot (20)

jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
 
JQuery introduction
JQuery introductionJQuery introduction
JQuery introduction
 
Jquery-overview
Jquery-overviewJquery-overview
Jquery-overview
 
jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009
 
jQuery Essentials
jQuery EssentialsjQuery Essentials
jQuery Essentials
 
An in-depth look at jQuery UI
An in-depth look at jQuery UIAn in-depth look at jQuery UI
An in-depth look at jQuery UI
 
Jquery
JqueryJquery
Jquery
 
jQuery
jQueryjQuery
jQuery
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginning
 
jQuery Presentation
jQuery PresentationjQuery Presentation
jQuery Presentation
 
JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)
 
jQuery (BostonPHP)
jQuery (BostonPHP)jQuery (BostonPHP)
jQuery (BostonPHP)
 
Unobtrusive javascript with jQuery
Unobtrusive javascript with jQueryUnobtrusive javascript with jQuery
Unobtrusive javascript with jQuery
 
jQuery
jQueryjQuery
jQuery
 
Organizing Code with JavascriptMVC
Organizing Code with JavascriptMVCOrganizing Code with JavascriptMVC
Organizing Code with JavascriptMVC
 
jQuery Features to Avoid
jQuery Features to AvoidjQuery Features to Avoid
jQuery Features to Avoid
 
jQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and BlingjQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and Bling
 
jQuery
jQueryjQuery
jQuery
 
History of jQuery
History of jQueryHistory of jQuery
History of jQuery
 

Viewers also liked (6)

MS Sql Server: Introduction To Datamining Suing Sql Server
MS Sql Server: Introduction To Datamining Suing Sql ServerMS Sql Server: Introduction To Datamining Suing Sql Server
MS Sql Server: Introduction To Datamining Suing Sql Server
 
Quick Look At Classification
Quick Look At ClassificationQuick Look At Classification
Quick Look At Classification
 
Ext Js
Ext JsExt Js
Ext Js
 
SQL and NoSQL Better Together in Alasql
SQL and NoSQL Better Together in AlasqlSQL and NoSQL Better Together in Alasql
SQL and NoSQL Better Together in Alasql
 
MS SQL SERVER: Microsoft naive bayes algorithm
MS SQL SERVER: Microsoft naive bayes algorithmMS SQL SERVER: Microsoft naive bayes algorithm
MS SQL SERVER: Microsoft naive bayes algorithm
 
MS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regressionMS SQL SERVER:Microsoft neural network and logistic regression
MS SQL SERVER:Microsoft neural network and logistic regression
 

Similar to The Dom Scripting Toolkit J Query

Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
deimos
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
Chris Alfano
 
jQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't KnowjQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't Know
girish82
 
Using jQuery to Extend CSS
Using jQuery to Extend CSSUsing jQuery to Extend CSS
Using jQuery to Extend CSS
Chris Coyier
 
Bcblackpool jquery tips
Bcblackpool jquery tipsBcblackpool jquery tips
Bcblackpool jquery tips
Jack Franklin
 

Similar to The Dom Scripting Toolkit J Query (20)

Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
An in-depth look at jQuery
An in-depth look at jQueryAn in-depth look at jQuery
An in-depth look at jQuery
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
 
DOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript FrameworkDOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript Framework
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
 
jQuery (MeshU)
jQuery (MeshU)jQuery (MeshU)
jQuery (MeshU)
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuff
 
jQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't KnowjQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't Know
 
Cheap frontend tricks
Cheap frontend tricksCheap frontend tricks
Cheap frontend tricks
 
jQuery
jQueryjQuery
jQuery
 
jQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and PerformancejQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and Performance
 
Javascript in Plone
Javascript in PloneJavascript in Plone
Javascript in Plone
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
 
Using jQuery to Extend CSS
Using jQuery to Extend CSSUsing jQuery to Extend CSS
Using jQuery to Extend CSS
 
Jquery optimization-tips
Jquery optimization-tipsJquery optimization-tips
Jquery optimization-tips
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Libraries
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
jQuery Rescue Adventure
jQuery Rescue AdventurejQuery Rescue Adventure
jQuery Rescue Adventure
 
JQuery In Drupal
JQuery In DrupalJQuery In Drupal
JQuery In Drupal
 
Bcblackpool jquery tips
Bcblackpool jquery tipsBcblackpool jquery tips
Bcblackpool jquery tips
 

More from QConLondon2008

J Ruby Power On The Jvm
J Ruby Power On The JvmJ Ruby Power On The Jvm
J Ruby Power On The Jvm
QConLondon2008
 
Market Risk System Bnp Paribas
Market Risk System Bnp ParibasMarket Risk System Bnp Paribas
Market Risk System Bnp Paribas
QConLondon2008
 
Evolving The Java Language
Evolving The Java LanguageEvolving The Java Language
Evolving The Java Language
QConLondon2008
 
Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The Web
QConLondon2008
 
14147503 Intentions Interfaces Making Patterns Concrete
14147503 Intentions Interfaces Making Patterns Concrete14147503 Intentions Interfaces Making Patterns Concrete
14147503 Intentions Interfaces Making Patterns Concrete
QConLondon2008
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1
QConLondon2008
 
Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
QConLondon2008
 
Rest Reuse And Serendipity
Rest Reuse And SerendipityRest Reuse And Serendipity
Rest Reuse And Serendipity
QConLondon2008
 

More from QConLondon2008 (11)

J Ruby Power On The Jvm
J Ruby Power On The JvmJ Ruby Power On The Jvm
J Ruby Power On The Jvm
 
Agile Mashups
Agile MashupsAgile Mashups
Agile Mashups
 
Market Risk System Bnp Paribas
Market Risk System Bnp ParibasMarket Risk System Bnp Paribas
Market Risk System Bnp Paribas
 
A Tale Of Two Systems
A Tale Of Two SystemsA Tale Of Two Systems
A Tale Of Two Systems
 
Evolving The Java Language
Evolving The Java LanguageEvolving The Java Language
Evolving The Java Language
 
Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The Web
 
14147503 Intentions Interfaces Making Patterns Concrete
14147503 Intentions Interfaces Making Patterns Concrete14147503 Intentions Interfaces Making Patterns Concrete
14147503 Intentions Interfaces Making Patterns Concrete
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1
 
Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
 
Managers In Scrum
Managers In ScrumManagers In Scrum
Managers In Scrum
 
Rest Reuse And Serendipity
Rest Reuse And SerendipityRest Reuse And Serendipity
Rest Reuse And Serendipity
 

Recently uploaded

Recently uploaded (20)

Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 

The Dom Scripting Toolkit J Query