SlideShare a Scribd company logo
March 2008 - John Resig
We missed you!
✦   We’ve been busy:
    ✦ jQuery 1.1
    ✦ jQuery 1.1.1
    ✦ jQuery 1.1.2
    ✦ jQuery 1.1.3
    ✦ jQuery 1.1.4
    ✦ jQuery 1.2
    ✦ jQuery 1.2.1
    ✦ jQuery 1.2.2
    ✦ jQuery 1.2.3

✦   ... since the last Drupal release
Major Releases
✦   More info:
    ✦ jQuery 1.1:
        http://jquery.com/blog/2007/01/14/jquery-birthday-11-new-site-new-docs/
    ✦   jQuery 1.1.3:
        http://jquery.com/blog/2007/07/01/jquery-113-800-faster-still-20kb/
    ✦   jQuery 1.1.4:
        http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready-
        for-12/
    ✦   jQuery 1.2:
        http://docs.jquery.com/Release:jQuery_1.2
    ✦   jQuery 1.2.2:
        http://docs.jquery.com/Release:jQuery_1.2.2
    ✦   jQuery 1.2.3:
        http://docs.jquery.com/Release:jQuery_1.2.3
    ✦   All: http://docs.jquery.com/Downloading_jQuery
Refinement
✦   API is highly refined
    ✦ Major focus on speed improvements
    ✦ Removing un-used functionality

✦   Most improvements come from plugins
Existing API
✦   A pure psuedo-language for the DOM
✦   $(“#items”)
       .find(“ul”)
          .addClass(“inner”)
       .end()
       .find(“li”)
          .andSelf()
             .hover(over, off)
          .end()
       .end()
       .show();
Plugins API
✦   Dead simple scheme for adding new
    jQuery methods:
✦   jQuery.fn.fadeRemove = function(speed){
       return this.fadeOut(speed, function(){
           jQuery(this).remove();
       });
    };
✦   $(“div.foo”).fadeRemove();
Keep Lean
✦   We want to keep the core as tight as
    possible
✦   Keep file size and bloat to a minimum
    ✦ No larger than 15kb gzipped

✦   Focus on extensibility for further
    improvements
Keep Clean
✦   jQuery can be rename ‘$’:
    var $jq = jQuery.noConflict();
    $jq(“div”).hide();
✦   jQuery can even rename ‘jQuery’ allowing
    multiple copies of jQuery to work side-by-
    side.
✦   var $a = jQuery.noConflict(true);
    // load other version of jQuery
    $a(“div”).hide(); // still works!
Keep Lean
✦   How can we keep jQuery lean?
    ✦ Provide more hooks for plugins

✦   Hooks:
    ✦ Animations
    ✦ Special Events
    ✦ Namespaced Events
    ✦ Element Data
Animations
✦   Full Animation plugin (in jQuery 1.2):
✦   jQuery.fx.step.corner = function(fx) {
      fx.elem.style.top = fx.now + fx.unit;
      fx.elem.style.left = fx.now + fx.unit;
    };
✦   $(”#go”).click(function(){
      $(”#block”).animate({corner: ‘40px’}, 500);
    });
Special Events
✦   Added in jQuery 1.2.2
✦   Can create whole shadow event system
✦   New events: mouseenter, mouseleave,
    mousewheel (w/ plugin), ready
✦   $(”li”).bind(”mouseenter”, function(){
      $(this).addClass(”hover”);
    }).bind(”mouseleave”, function(){
      $(this).removeClass(”hover”);
    });
Namespaced Events
✦   Added in jQuery 1.2
✦   Targeted adding and removal of events
✦   $(“div”).bind(“click.foo”, function(){
      alert(“foo!”);
    });
✦   Time to clean up!
    $(“div”).unbind(“click.foo”);
✦   Added in jQuery 1.2.3:
    $(“div”).unbind(“.foo”);
Element Data
✦   Added in jQuery 1.2
✦   Attaching data to elements can be
    hazardous
✦   Store data:
    jQuery.data(elem, “name”, “value”);
✦   Read data:
    jQuery.data(elem, “name”);
✦   All data is stored in a central cached and
    completely garbage collected, as necessary
Element Data (cont.)
✦   Added in jQuery 1.2.3
✦   Can handle namespacing
    $(”div”).data(”test”, “original”);
    $(”div”).data(”test.plugin”, “new data”);
    $(”div”).data(”test”) == “original”; // true
    $(”div”).data(”test.plugin”) == “new data”; // true
✦   Advanced data handling can be overridden
    by plugins
    $(element).bind(”setData.draggable”, function(event, key, value){
        self.options[key] = value;
    }).bind(”getData.draggable”, function(event, key){
        return self.options[key];
    });
Plugins
✦   Huge plugin ecosystem
✦   Managed by Plugin tracker - built with
    Drupal!
    http://plugins.jquery.com/
✦   Hundreds in the tracker - even more on
    the web
jQuery UI
✦   A complete set of themed, cross-browser,
    user interface components.
✦   Drag, Drop, Sort, Select, Resize
✦   Accordion, Datepicker, Dialog, Slider, Tabs
✦   More info:
    http://docs.jquery.com/UI
✦   1.5 is in beta right now:
    http://jquery.com/blog/2008/02/12/jquery-ui-15b-new-api-more-features-huge-performance-boost/
Accessibility
✦   Keyboard Accessible
✦   Screenreader Accessible
✦   Grant from Mozilla Foundation to
    implement ARIA
Support
✦   Liferay (Java CMS) hired Paul Bakaus,
    jQuery UI lead to work on it full time.
✦   More support on the way!
jQuery Enchant
✦   Color Animations
✦   Advanced Queue Control
✦   Advanced Animations, made simple:
    $(’#fx’).show(’blind’, {direction: ‘vertical’});
Books
Questions?
✦   jeresig@gmail.com
✦   http://ejohn.org/

More Related Content

PDF
Introduction to jQuery (Ajax Exp 2007)
jeresig
 
PDF
Advanced jQuery (Ajax Exp 2007)
jeresig
 
PDF
JavaScript Library Overview (Ajax Exp West 2007)
jeresig
 
PDF
Introduction to jQuery (Ajax Exp 2006)
jeresig
 
PDF
bcgr3-jquery
tutorialsruby
 
PDF
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
PDF
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
PDF
jQuery Essentials
Bedis ElAchèche
 
Introduction to jQuery (Ajax Exp 2007)
jeresig
 
Advanced jQuery (Ajax Exp 2007)
jeresig
 
JavaScript Library Overview (Ajax Exp West 2007)
jeresig
 
Introduction to jQuery (Ajax Exp 2006)
jeresig
 
bcgr3-jquery
tutorialsruby
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
jQuery Essentials
Bedis ElAchèche
 

What's hot (20)

PPT
Introduction to j query
thewarlog
 
PDF
jQuery Introduction
Arwid Bancewicz
 
PDF
Short intro to JQuery and Modernizr
Jussi Pohjolainen
 
PPTX
JQuery
Jussi Pohjolainen
 
PDF
JavaScript Libraries (Kings of Code)
jeresig
 
PPTX
Introduction to j_query
Basavaraj Hampali
 
PDF
jQuery (BostonPHP)
jeresig
 
PDF
D3.js and SVG
Karol Depka Pradzinski
 
PDF
JavaScript Libraries (@Media)
jeresig
 
PDF
Prototype & jQuery
Remy Sharp
 
PDF
jQuery in the [Aol.] Enterprise
Dave Artz
 
PDF
jQuery (MeshU)
jeresig
 
PPT
jQuery Learning
Uzair Ali
 
PPSX
JQuery Comprehensive Overview
Mohamed Loey
 
PPTX
CT presentatie JQuery 7.12.11
virtualsciences41
 
PDF
jQuery in 15 minutes
Simon Willison
 
PDF
Drupal 7: What's In It For You?
karschsp
 
PDF
jQuery (DrupalCamp Toronto)
jeresig
 
PPTX
How dojo works
Amit Tyagi
 
PPTX
Jquery
PaRa Vaishnav
 
Introduction to j query
thewarlog
 
jQuery Introduction
Arwid Bancewicz
 
Short intro to JQuery and Modernizr
Jussi Pohjolainen
 
JavaScript Libraries (Kings of Code)
jeresig
 
Introduction to j_query
Basavaraj Hampali
 
jQuery (BostonPHP)
jeresig
 
D3.js and SVG
Karol Depka Pradzinski
 
JavaScript Libraries (@Media)
jeresig
 
Prototype & jQuery
Remy Sharp
 
jQuery in the [Aol.] Enterprise
Dave Artz
 
jQuery (MeshU)
jeresig
 
jQuery Learning
Uzair Ali
 
JQuery Comprehensive Overview
Mohamed Loey
 
CT presentatie JQuery 7.12.11
virtualsciences41
 
jQuery in 15 minutes
Simon Willison
 
Drupal 7: What's In It For You?
karschsp
 
jQuery (DrupalCamp Toronto)
jeresig
 
How dojo works
Amit Tyagi
 
Ad

Similar to State of jQuery and Drupal (20)

PPTX
jQuery
Jon Erickson
 
PDF
jQuery Internals + Cool Stuff
jeresig
 
PPTX
A to Z about JQuery - Become Newbie to Expert Java Developer
Manoj Bhuva
 
PPTX
jQuery
Jay Poojara
 
PPT
jQuery Tips Tricks Trivia
Cognizant
 
PDF
Remy Sharp The DOM scripting toolkit jQuery
deimos
 
PPT
J query presentation
sawarkar17
 
PPT
J query presentation
akanksha17
 
PPT
jQuery Introduction/ jquery basic concept
MuhammadJameel83
 
PDF
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Sean Burgess
 
PDF
DOM Scripting Toolkit - jQuery
Remy Sharp
 
PPTX
jQuery
Jeremiah Gatong
 
PPTX
Introduction to Jquery
Ahmed Elharouny
 
PDF
Learning jquery-in-30-minutes-1195942580702664-3
luckysb16
 
PPT
JQuery introduction
NexThoughts Technologies
 
PDF
Jquery In Action Second Edition 2nd Ed Bear Bibeault Yehuda Katz
aneilvoyce0a
 
PDF
J query fundamentals
Attaporn Ninsuwan
 
PPT
Jquery presentation
Narendra Dabhi
 
PPTX
A Rich Web experience with jQuery, Ajax and .NET
James Johnson
 
PPT
J query b_dotnet_ug_meet_12_may_2012
ghnash
 
jQuery
Jon Erickson
 
jQuery Internals + Cool Stuff
jeresig
 
A to Z about JQuery - Become Newbie to Expert Java Developer
Manoj Bhuva
 
jQuery
Jay Poojara
 
jQuery Tips Tricks Trivia
Cognizant
 
Remy Sharp The DOM scripting toolkit jQuery
deimos
 
J query presentation
sawarkar17
 
J query presentation
akanksha17
 
jQuery Introduction/ jquery basic concept
MuhammadJameel83
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Sean Burgess
 
DOM Scripting Toolkit - jQuery
Remy Sharp
 
Introduction to Jquery
Ahmed Elharouny
 
Learning jquery-in-30-minutes-1195942580702664-3
luckysb16
 
JQuery introduction
NexThoughts Technologies
 
Jquery In Action Second Edition 2nd Ed Bear Bibeault Yehuda Katz
aneilvoyce0a
 
J query fundamentals
Attaporn Ninsuwan
 
Jquery presentation
Narendra Dabhi
 
A Rich Web experience with jQuery, Ajax and .NET
James Johnson
 
J query b_dotnet_ug_meet_12_may_2012
ghnash
 
Ad

More from jeresig (20)

PDF
Does Coding Every Day Matter?
jeresig
 
PDF
Accidentally Becoming a Digital Librarian
jeresig
 
PDF
2014: John's Favorite Thing (Neo4j)
jeresig
 
PDF
Computer Vision as Art Historical Investigation
jeresig
 
PDF
Hacking Art History
jeresig
 
PDF
Using JS to teach JS at Khan Academy
jeresig
 
PDF
Applying Computer Vision to Art History
jeresig
 
PDF
NYARC 2014: Frick/Zeri Results
jeresig
 
PDF
EmpireJS: Hacking Art with Node js and Image Analysis
jeresig
 
PDF
Applying Computer Vision to Art History
jeresig
 
PDF
JavaScript Libraries (Ajax Exp 2006)
jeresig
 
PDF
jQuery Recommendations to the W3C (2011)
jeresig
 
PDF
jQuery Open Source Process (RIT 2011)
jeresig
 
PDF
jQuery Open Source Process (Knight Foundation 2011)
jeresig
 
PDF
jQuery Mobile
jeresig
 
PDF
jQuery Open Source (Fronteer 2011)
jeresig
 
PDF
Holistic JavaScript Performance
jeresig
 
PDF
New Features Coming in Browsers (RIT '09)
jeresig
 
PDF
Meta Programming with JavaScript
jeresig
 
PDF
Advancing JavaScript with Libraries (Yahoo Tech Talk)
jeresig
 
Does Coding Every Day Matter?
jeresig
 
Accidentally Becoming a Digital Librarian
jeresig
 
2014: John's Favorite Thing (Neo4j)
jeresig
 
Computer Vision as Art Historical Investigation
jeresig
 
Hacking Art History
jeresig
 
Using JS to teach JS at Khan Academy
jeresig
 
Applying Computer Vision to Art History
jeresig
 
NYARC 2014: Frick/Zeri Results
jeresig
 
EmpireJS: Hacking Art with Node js and Image Analysis
jeresig
 
Applying Computer Vision to Art History
jeresig
 
JavaScript Libraries (Ajax Exp 2006)
jeresig
 
jQuery Recommendations to the W3C (2011)
jeresig
 
jQuery Open Source Process (RIT 2011)
jeresig
 
jQuery Open Source Process (Knight Foundation 2011)
jeresig
 
jQuery Mobile
jeresig
 
jQuery Open Source (Fronteer 2011)
jeresig
 
Holistic JavaScript Performance
jeresig
 
New Features Coming in Browsers (RIT '09)
jeresig
 
Meta Programming with JavaScript
jeresig
 
Advancing JavaScript with Libraries (Yahoo Tech Talk)
jeresig
 

Recently uploaded (20)

PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPT
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
Software Development Company | KodekX
KodekX
 
PPT
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Best ERP System for Manufacturing in India | Elite Mindz
Elite Mindz
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
L2 Rules of Netiquette in Empowerment technology
Archibal2
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
Software Development Company | KodekX
KodekX
 
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Best ERP System for Manufacturing in India | Elite Mindz
Elite Mindz
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 

State of jQuery and Drupal

  • 1. March 2008 - John Resig
  • 2. We missed you! ✦ We’ve been busy: ✦ jQuery 1.1 ✦ jQuery 1.1.1 ✦ jQuery 1.1.2 ✦ jQuery 1.1.3 ✦ jQuery 1.1.4 ✦ jQuery 1.2 ✦ jQuery 1.2.1 ✦ jQuery 1.2.2 ✦ jQuery 1.2.3 ✦ ... since the last Drupal release
  • 3. Major Releases ✦ More info: ✦ jQuery 1.1: http://jquery.com/blog/2007/01/14/jquery-birthday-11-new-site-new-docs/ ✦ jQuery 1.1.3: http://jquery.com/blog/2007/07/01/jquery-113-800-faster-still-20kb/ ✦ jQuery 1.1.4: http://jquery.com/blog/2007/08/24/jquery-114-faster-more-tests-ready- for-12/ ✦ jQuery 1.2: http://docs.jquery.com/Release:jQuery_1.2 ✦ jQuery 1.2.2: http://docs.jquery.com/Release:jQuery_1.2.2 ✦ jQuery 1.2.3: http://docs.jquery.com/Release:jQuery_1.2.3 ✦ All: http://docs.jquery.com/Downloading_jQuery
  • 4. Refinement ✦ API is highly refined ✦ Major focus on speed improvements ✦ Removing un-used functionality ✦ Most improvements come from plugins
  • 5. Existing API ✦ A pure psuedo-language for the DOM ✦ $(“#items”) .find(“ul”) .addClass(“inner”) .end() .find(“li”) .andSelf() .hover(over, off) .end() .end() .show();
  • 6. Plugins API ✦ Dead simple scheme for adding new jQuery methods: ✦ jQuery.fn.fadeRemove = function(speed){ return this.fadeOut(speed, function(){ jQuery(this).remove(); }); }; ✦ $(“div.foo”).fadeRemove();
  • 7. Keep Lean ✦ We want to keep the core as tight as possible ✦ Keep file size and bloat to a minimum ✦ No larger than 15kb gzipped ✦ Focus on extensibility for further improvements
  • 8. Keep Clean ✦ jQuery can be rename ‘$’: var $jq = jQuery.noConflict(); $jq(“div”).hide(); ✦ jQuery can even rename ‘jQuery’ allowing multiple copies of jQuery to work side-by- side. ✦ var $a = jQuery.noConflict(true); // load other version of jQuery $a(“div”).hide(); // still works!
  • 9. Keep Lean ✦ How can we keep jQuery lean? ✦ Provide more hooks for plugins ✦ Hooks: ✦ Animations ✦ Special Events ✦ Namespaced Events ✦ Element Data
  • 10. Animations ✦ Full Animation plugin (in jQuery 1.2): ✦ jQuery.fx.step.corner = function(fx) { fx.elem.style.top = fx.now + fx.unit; fx.elem.style.left = fx.now + fx.unit; }; ✦ $(”#go”).click(function(){ $(”#block”).animate({corner: ‘40px’}, 500); });
  • 11. Special Events ✦ Added in jQuery 1.2.2 ✦ Can create whole shadow event system ✦ New events: mouseenter, mouseleave, mousewheel (w/ plugin), ready ✦ $(”li”).bind(”mouseenter”, function(){ $(this).addClass(”hover”); }).bind(”mouseleave”, function(){ $(this).removeClass(”hover”); });
  • 12. Namespaced Events ✦ Added in jQuery 1.2 ✦ Targeted adding and removal of events ✦ $(“div”).bind(“click.foo”, function(){ alert(“foo!”); }); ✦ Time to clean up! $(“div”).unbind(“click.foo”); ✦ Added in jQuery 1.2.3: $(“div”).unbind(“.foo”);
  • 13. Element Data ✦ Added in jQuery 1.2 ✦ Attaching data to elements can be hazardous ✦ Store data: jQuery.data(elem, “name”, “value”); ✦ Read data: jQuery.data(elem, “name”); ✦ All data is stored in a central cached and completely garbage collected, as necessary
  • 14. Element Data (cont.) ✦ Added in jQuery 1.2.3 ✦ Can handle namespacing $(”div”).data(”test”, “original”); $(”div”).data(”test.plugin”, “new data”); $(”div”).data(”test”) == “original”; // true $(”div”).data(”test.plugin”) == “new data”; // true ✦ Advanced data handling can be overridden by plugins $(element).bind(”setData.draggable”, function(event, key, value){ self.options[key] = value; }).bind(”getData.draggable”, function(event, key){ return self.options[key]; });
  • 15. Plugins ✦ Huge plugin ecosystem ✦ Managed by Plugin tracker - built with Drupal! http://plugins.jquery.com/ ✦ Hundreds in the tracker - even more on the web
  • 16. jQuery UI ✦ A complete set of themed, cross-browser, user interface components. ✦ Drag, Drop, Sort, Select, Resize ✦ Accordion, Datepicker, Dialog, Slider, Tabs ✦ More info: http://docs.jquery.com/UI ✦ 1.5 is in beta right now: http://jquery.com/blog/2008/02/12/jquery-ui-15b-new-api-more-features-huge-performance-boost/
  • 17. Accessibility ✦ Keyboard Accessible ✦ Screenreader Accessible ✦ Grant from Mozilla Foundation to implement ARIA
  • 18. Support ✦ Liferay (Java CMS) hired Paul Bakaus, jQuery UI lead to work on it full time. ✦ More support on the way!
  • 19. jQuery Enchant ✦ Color Animations ✦ Advanced Queue Control ✦ Advanced Animations, made simple: $(’#fx’).show(’blind’, {direction: ‘vertical’});
  • 20. Books
  • 21. Questions? ✦ [email protected] ✦ http://ejohn.org/