SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
State of jQuery
  Spring 2011
     John Resig
State of the Project
Project
Spending Money
• All expenditures are handled via public
  voting
• What have we spent money on?
 • Team Meetings
 • Conferences
 • Developer time
Sponsored Projects
• jQuery UI
 • Scott G
• jQuery Mobile
 • Filament Group
• jQuery UI Grid
 • Richard, Joern, and Scott
Spending Money

• What will we be spending money on?
 • Getting more developer time to train and
    mentor new developers
 • Design work and jQuery Mobile
 • More team meetings and conferences
New Team and Eboard
• Recently Joined:
 • Adam Sontag
   • Working with the UI and Bug Triage
      teams
 • Dan Heberden
  • Working with Infrastructure and Bug
      Triage team
jQuery Core
 and Bug Triage Teams
• We’ve added a number of new committers
  • Dave Methvin (dmethvin)
  • Julian Aubourg (jaubourg)
  • Anton Matzneller (jitter)
  • Timmy Willison (timwillison)
• We also got a ton of help from Colin Snover
  in organizing the team.
New Core
Development Process
• Weekly, public, team meetings
• Defined release dates and schedule
• Frequent discussion in #jquery-dev (IRC)
 • Active participation of the committers
    and the bug triage team
Weekly Meeting Notes
Bug Triage Team
• Responsible for processing all the bugs in
  the bug tracker
  • Make sure test cases are filed
• Work through pulls in the Github pull
  request queue
• Make sure the test suite is passing
Bugs
Roadmap Decisions

• Put up a public form for people to submit
  possible feature suggestions
• The team works through all the feature
  suggestions and creates a list
  • All of this is done in a publicly and
    discussed in a public meeting
Roadmap
New Releases

• jQuery 1.4.4, 1.5, 1.5.1, 1.5.2, and 1.6!
• Official Plugins Status
• jQuery Mobile Alphas 2, 3, and 4
jQuery 1.6b1


• Whole bunch of improvements
 • Rewrite of .attr()
.attr() Rewrite
•   Provide a full series of .attr() hooks
•   jQuery.attrHooks.selected = {
        set: function( elem, value ) {
           if ( value === false ) {
               jQuery.removeAttr(elem, “selected”);
               return value;
           }
       }
    };
.prop()

• Split apart attr/prop:
 • .attr(“selected”) -> “selected”
 • .prop(“selectedIndex”) -> 1
 • .prop(“selected”) -> true
.attr() Performance


• This rewrite also yields performance
  increases of around 85%!
valHooks
• Similar to cssHooks and valHooks but
  handles .val() as well
  • Inputs tend to have different support
    depending upon the platform
• Getting value is over 147% faster!
Better Support Tests
• Interesting technique:
 • document.createElement(“body”)
 • Do it before the DOM is ready!
 • You can do visual DOM tests before
    they’re displayed
 • Prevents flash of unstyled content
:focus Selector


• Make sure :focus works on all platforms:
  $(“input:focus”) -> Find the focused input
Faster Triggering and
         Data
• Triggering performance has been improved
  dramatically
  • Which increases the performance
    of .data() as a result!
• .data() is around 115% faster!
Convenient Methods
for Checking Elements
• .is( Element )
 • Simpler way to check equality
• .filter( Element )
 • Check if a set has an element
• .find( Element )
 • Equivalent to .contains()
Synced Animations

• Make it possible to ensure that animations
  run at the same time
  • Yielding animations that are less “glitchy”
• Animations are all run at the same timer
  cluster (timers tend to run every 15ms or
  so, depending upon the browser)
requestAnimationFrame
• New feature provided by the browser
• Makes it easier to create high
  performance, smoother, animations
$.map( Object )

• $.map( Array ) worked before
• Now $.map( Object ) can map properties
  to other values
• $.map({ test: 1 }, function( name, value ) {
    return value + 1;
  });
Use Function.prototype.bind


• Use the method for jQuery.proxy()
• Utilize the browsers native binding
  mechanism
  • Force the `this` of a function to be a
    particular object
Relative .css()

• Bringing the functionality back
  from .animate():
  • .css( “height”, “+=10” )
  • Updates the height relative to the
    current height
Official Plugins

• We’ve made a change in policy regarding
  official plugins
• Official plugins will be maintained by the
  jQuery team (UI, Core)
• Only plugins that fit into those teams will
  be supported
Existing Plugins

• Into the jQuery Core team:
 • Color, Mousewheel, Easing, CSS Hooks
• Into the jQuery UI team:
 • jQuery Templates
jQuery Mobile
Response
• Response has been overwhelmingly positive
• We’re getting support from major mobile
  browsers
 • RIM, Nokia, IE Mobile
• And major companies:
 • Microsoft, Adobe, Brightcove, BBC
Better Browser
         Support
• Firefox Mobile
• Opera Mobile and Mini
• Windows Phone 7
 • (and Internet Explorer itself!)
What’s Landed?
• Tons of bug fixes and enhancements
• Ajax form handling
• Unit Tests (!)
• Excellent keyboard and accessibility support
• Touch optimized datepicker
• Working great in PhoneGap
Rewrites


• Faster performance across the board
• All widgets using jQuery UI widget factory
Navigation Refactored
• Rewrite of core navigation model
 • Including using the new pushState!
• history.pushState(stateObj, "page 2",
  "bar.html");
• URL now becomes: /bar.html
• (but an actual page load isn’t done!)
Media Query Helpers
• New classes: .portrait, .landscape
• label.ui-input-text {
  	

 display: block;
  }
  .min-width-480px label.ui-input-text {
  	

 display: inline-block;
  }
Namespaced data-
• jQuery Mobile is predominantly configured
  through data- attributes
• <div data-role=”page”></div>
• You can now namespace the attributes, if
  you wish.
• <div data-jqm-role=”page”></div>
“Fast Click”
• It’s surprisingly hard to make click, and
  other mouse events, work as fast as
  possible
• There are a number of assumptions in
  place regarding touch events that make this
  hard.
• We now fix this straight in jQuery Mobile.
Mobile Beta

• jQuery Mobile Beta 1 is the next upcoming
  release!
• Even though it’s an alpha many people are
  already deploying applications that work
  great.
Enjoy the Conference!

• More information:
 • http://blog.jquery.com/ (jQuery 1.6b1)
 • http://jquerymobile.com/

Contenu connexe

Plus de jeresig

NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Resultsjeresig
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysisjeresig
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art Historyjeresig
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)jeresig
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jeresig
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jeresig
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jeresig
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobilejeresig
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jeresig
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performancejeresig
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)jeresig
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)jeresig
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)jeresig
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)jeresig
 
Meta Programming with JavaScript
Meta Programming with JavaScriptMeta Programming with JavaScript
Meta Programming with JavaScriptjeresig
 
Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)jeresig
 
The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)jeresig
 
State of jQuery and Drupal
State of jQuery and DrupalState of jQuery and Drupal
State of jQuery and Drupaljeresig
 
Khan Academy Computer Science
Khan Academy Computer ScienceKhan Academy Computer Science
Khan Academy Computer Sciencejeresig
 

Plus de jeresig (20)

NYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri ResultsNYARC 2014: Frick/Zeri Results
NYARC 2014: Frick/Zeri Results
 
EmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image AnalysisEmpireJS: Hacking Art with Node js and Image Analysis
EmpireJS: Hacking Art with Node js and Image Analysis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art HistoryApplying Computer Vision to Art History
Applying Computer Vision to Art History
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
 
jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)jQuery Open Source Process (RIT 2011)
jQuery Open Source Process (RIT 2011)
 
jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)jQuery Open Source Process (Knight Foundation 2011)
jQuery Open Source Process (Knight Foundation 2011)
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)jQuery Open Source (Fronteer 2011)
jQuery Open Source (Fronteer 2011)
 
Holistic JavaScript Performance
Holistic JavaScript PerformanceHolistic JavaScript Performance
Holistic JavaScript Performance
 
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 
Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)Advanced jQuery (Ajax Exp 2007)
Advanced jQuery (Ajax Exp 2007)
 
JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)JavaScript Library Overview (Ajax Exp West 2007)
JavaScript Library Overview (Ajax Exp West 2007)
 
Meta Programming with JavaScript
Meta Programming with JavaScriptMeta Programming with JavaScript
Meta Programming with JavaScript
 
Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)Advancing JavaScript with Libraries (Yahoo Tech Talk)
Advancing JavaScript with Libraries (Yahoo Tech Talk)
 
The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)The Future of JavaScript (Ajax Exp '07)
The Future of JavaScript (Ajax Exp '07)
 
State of jQuery and Drupal
State of jQuery and DrupalState of jQuery and Drupal
State of jQuery and Drupal
 
Khan Academy Computer Science
Khan Academy Computer ScienceKhan Academy Computer Science
Khan Academy Computer Science
 

Dernier

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Dernier (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

jQuery Keynote - Spring 2011

  • 1. State of jQuery Spring 2011 John Resig
  • 2. State of the Project
  • 3.
  • 4.
  • 6. Spending Money • All expenditures are handled via public voting • What have we spent money on? • Team Meetings • Conferences • Developer time
  • 7. Sponsored Projects • jQuery UI • Scott G • jQuery Mobile • Filament Group • jQuery UI Grid • Richard, Joern, and Scott
  • 8. Spending Money • What will we be spending money on? • Getting more developer time to train and mentor new developers • Design work and jQuery Mobile • More team meetings and conferences
  • 9. New Team and Eboard • Recently Joined: • Adam Sontag • Working with the UI and Bug Triage teams • Dan Heberden • Working with Infrastructure and Bug Triage team
  • 10. jQuery Core and Bug Triage Teams • We’ve added a number of new committers • Dave Methvin (dmethvin) • Julian Aubourg (jaubourg) • Anton Matzneller (jitter) • Timmy Willison (timwillison) • We also got a ton of help from Colin Snover in organizing the team.
  • 11. New Core Development Process • Weekly, public, team meetings • Defined release dates and schedule • Frequent discussion in #jquery-dev (IRC) • Active participation of the committers and the bug triage team
  • 13. Bug Triage Team • Responsible for processing all the bugs in the bug tracker • Make sure test cases are filed • Work through pulls in the Github pull request queue • Make sure the test suite is passing
  • 14. Bugs
  • 15. Roadmap Decisions • Put up a public form for people to submit possible feature suggestions • The team works through all the feature suggestions and creates a list • All of this is done in a publicly and discussed in a public meeting
  • 17. New Releases • jQuery 1.4.4, 1.5, 1.5.1, 1.5.2, and 1.6! • Official Plugins Status • jQuery Mobile Alphas 2, 3, and 4
  • 18. jQuery 1.6b1 • Whole bunch of improvements • Rewrite of .attr()
  • 19. .attr() Rewrite • Provide a full series of .attr() hooks • jQuery.attrHooks.selected = { set: function( elem, value ) { if ( value === false ) { jQuery.removeAttr(elem, “selected”); return value; } } };
  • 20. .prop() • Split apart attr/prop: • .attr(“selected”) -> “selected” • .prop(“selectedIndex”) -> 1 • .prop(“selected”) -> true
  • 21. .attr() Performance • This rewrite also yields performance increases of around 85%!
  • 22. valHooks • Similar to cssHooks and valHooks but handles .val() as well • Inputs tend to have different support depending upon the platform • Getting value is over 147% faster!
  • 23. Better Support Tests • Interesting technique: • document.createElement(“body”) • Do it before the DOM is ready! • You can do visual DOM tests before they’re displayed • Prevents flash of unstyled content
  • 24. :focus Selector • Make sure :focus works on all platforms: $(“input:focus”) -> Find the focused input
  • 25. Faster Triggering and Data • Triggering performance has been improved dramatically • Which increases the performance of .data() as a result! • .data() is around 115% faster!
  • 26. Convenient Methods for Checking Elements • .is( Element ) • Simpler way to check equality • .filter( Element ) • Check if a set has an element • .find( Element ) • Equivalent to .contains()
  • 27. Synced Animations • Make it possible to ensure that animations run at the same time • Yielding animations that are less “glitchy” • Animations are all run at the same timer cluster (timers tend to run every 15ms or so, depending upon the browser)
  • 28. requestAnimationFrame • New feature provided by the browser • Makes it easier to create high performance, smoother, animations
  • 29. $.map( Object ) • $.map( Array ) worked before • Now $.map( Object ) can map properties to other values • $.map({ test: 1 }, function( name, value ) { return value + 1; });
  • 30. Use Function.prototype.bind • Use the method for jQuery.proxy() • Utilize the browsers native binding mechanism • Force the `this` of a function to be a particular object
  • 31. Relative .css() • Bringing the functionality back from .animate(): • .css( “height”, “+=10” ) • Updates the height relative to the current height
  • 32. Official Plugins • We’ve made a change in policy regarding official plugins • Official plugins will be maintained by the jQuery team (UI, Core) • Only plugins that fit into those teams will be supported
  • 33. Existing Plugins • Into the jQuery Core team: • Color, Mousewheel, Easing, CSS Hooks • Into the jQuery UI team: • jQuery Templates
  • 35. Response • Response has been overwhelmingly positive • We’re getting support from major mobile browsers • RIM, Nokia, IE Mobile • And major companies: • Microsoft, Adobe, Brightcove, BBC
  • 36.
  • 37.
  • 38. Better Browser Support • Firefox Mobile • Opera Mobile and Mini • Windows Phone 7 • (and Internet Explorer itself!)
  • 39. What’s Landed? • Tons of bug fixes and enhancements • Ajax form handling • Unit Tests (!) • Excellent keyboard and accessibility support • Touch optimized datepicker • Working great in PhoneGap
  • 40. Rewrites • Faster performance across the board • All widgets using jQuery UI widget factory
  • 41. Navigation Refactored • Rewrite of core navigation model • Including using the new pushState! • history.pushState(stateObj, "page 2", "bar.html"); • URL now becomes: /bar.html • (but an actual page load isn’t done!)
  • 42. Media Query Helpers • New classes: .portrait, .landscape • label.ui-input-text { display: block; } .min-width-480px label.ui-input-text { display: inline-block; }
  • 43. Namespaced data- • jQuery Mobile is predominantly configured through data- attributes • <div data-role=”page”></div> • You can now namespace the attributes, if you wish. • <div data-jqm-role=”page”></div>
  • 44. “Fast Click” • It’s surprisingly hard to make click, and other mouse events, work as fast as possible • There are a number of assumptions in place regarding touch events that make this hard. • We now fix this straight in jQuery Mobile.
  • 45. Mobile Beta • jQuery Mobile Beta 1 is the next upcoming release! • Even though it’s an alpha many people are already deploying applications that work great.
  • 46. Enjoy the Conference! • More information: • http://blog.jquery.com/ (jQuery 1.6b1) • http://jquerymobile.com/