history-of-jquery-1193847419986134-5

Upload: vimsy20

Post on 06-Apr-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 history-of-jquery-1193847419986134-5

    1/27

    jQuery

    Past, Present, and FutureJohn Resig(ejohn.org)

  • 8/3/2019 history-of-jquery-1193847419986134-5

    2/27

    Inspiration Simon Willisons getElementsBySelector

    Dean Edwards cssQuery

    Dean Edwards addEvent Prototype

    Behavior

    moo.fx

  • 8/3/2019 history-of-jquery-1193847419986134-5

    3/27

  • 8/3/2019 history-of-jquery-1193847419986134-5

    4/27

    The Beginning Started August of05

    http://ejohn.org/blog/selectors-in-javascript/

    $(#foo ol li)

    .set(title,List Items!)

    .bind(click,function(){alert(Hello!);})

    .select(.tmp).style(color,white)

    .select(.foo).style(background,red);

    jSelect!

    http://ejohn.org/blog/selectors-in-javascript/http://ejohn.org/blog/selectors-in-javascript/http://ejohn.org/blog/selectors-in-javascript/
  • 8/3/2019 history-of-jquery-1193847419986134-5

    5/27

    First Implementation http://ejohn.org/apps/jselect/selector.js

    $(document).bind(ready, init);

    var rows = $(#table tr:gt(0)); $(

    #table th)

    .bind(

    click,function

    (){

    if(removeClass(this, asc)){ addClass(this, desc); rows.reverse(); } else { removeClass(this, desc); addClass(this, asc);

    rows.sort(ofType(this).n ); }

    })

    http://ejohn.org/apps/jselect/selector.jshttp://ejohn.org/apps/jselect/selector.js
  • 8/3/2019 history-of-jquery-1193847419986134-5

    6/27

    First Implementation function sort(f){

    cur = cur.sort(function(a,b){ if(typeof f == object) var ret = f(a,b); else var ret = genericSort(a,b,f); if(a < b ) b.parentNode.insertBefore(a, b );

    else if(a > b ) a.parentNode.insertBefore(b, a); return ret; }); return this; }

    function reverse(){ cur[0].parentNode.appendChild(cur[0]);

    for(

    var i = 1; i < cur.length; i++)

    cur[i-1].parentNode.insertBefore(cur[i], cur[i-1]); cur = cur.reverse(); return this; }

  • 8/3/2019 history-of-jquery-1193847419986134-5

    7/27

    Expression Parsing

    var t = [title];var re = new RegExp(^\\[([a-z0-9-]+)(~?\\^?=?)?([^]*)?\\], i);var m = re.exec(t);t = t.replace(re, );alert(t + --- + m[1] + --- + m[2]);

  • 8/3/2019 history-of-jquery-1193847419986134-5

    8/27

    Release! Released at BarCamp NYC (Jan 2006)

    New Wave JavaScript

    Hit Digg and del.icio.us/popular CSS + XPath

    DOM Modification

    Events

    moo.fx-rewrite Animations

  • 8/3/2019 history-of-jquery-1193847419986134-5

    9/27

  • 8/3/2019 history-of-jquery-1193847419986134-5

    10/27

    Download Builder

  • 8/3/2019 history-of-jquery-1193847419986134-5

    11/27

    First Plugin 11 days later...

    JSON plugin

    Unlike Prototype, jQuery doesnt messaround with built-in JavaScript objects. Itsnewtoo new to have a version number!but Ive been writing some code with it

    and enjoying it.

    http://mg.to/2006/01/25/json-for-jquery

    http://mg.to/2006/01/25/json-for-jqueryhttp://mg.to/2006/01/25/json-for-jqueryhttp://mg.to/2006/01/25/json-for-jqueryhttp://mg.to/2006/01/25/json-for-jqueryhttp://mg.to/2006/01/25/json-for-jquery
  • 8/3/2019 history-of-jquery-1193847419986134-5

    12/27

    Initial Choices The $ war .style .onclick $(

    id)

    -> DOMElementDOMElement.onclick = jQuery method

    Creative Commons -> MIT

    No Ajax! -> Ajax!

  • 8/3/2019 history-of-jquery-1193847419986134-5

    13/27

    jQuery 2 May06

    pre:css background#212121css color#0F0

    css padding10pxcss font-size14pxbody:prepend jquery2

    input:first: click compileinput:last: click run

  • 8/3/2019 history-of-jquery-1193847419986134-5

    14/27

    Early Events SVN (May06) / Trac

    Drupal

    Thickbox(April 06) Version 1.0 (August 06)

  • 8/3/2019 history-of-jquery-1193847419986134-5

    15/27

    Teenage jQuery jQuery Magazine

    Why jQuery is better

  • 8/3/2019 history-of-jquery-1193847419986134-5

    16/27

    Later Events Plugins Repository

    Evangelism Team

  • 8/3/2019 history-of-jquery-1193847419986134-5

    17/27

    Progress 13 Releases (not including previews)

    4200 Mailing List Subscribers

    48%

    Developer Coverage(Ajaxian.com

    )

  • 8/3/2019 history-of-jquery-1193847419986134-5

    18/27

    Who uses jQuery? Digg Google NBC MSNBC Amazon Intel BBC AOL Oracle Cisco Newsweek Techonorati Washington Post Sourceforge

    American Eagle Salesforce Newsgator Boston Globe My YearBook New York Post

    Miami Herald Food Network REI The Onion FeedBurner PokerRoom Warner Bros. Def Jam Classmates Fandango Pandora isoHunt Ask A Ninja Ars Technica

    Linux.com Joost Barack Obama Nintendo and more!

  • 8/3/2019 history-of-jquery-1193847419986134-5

    19/27

    jQuery: Now jQuery 1.2.1

    jQuery UI

  • 8/3/2019 history-of-jquery-1193847419986134-5

    20/27

    jQuery UI First major new project since jQuery

    Important new direction for the project

    Huge boost to interest

  • 8/3/2019 history-of-jquery-1193847419986134-5

    21/27

    Future jQuery Test Suite

    jQuery UI

    Internationalization Forums

  • 8/3/2019 history-of-jquery-1193847419986134-5

    22/27

    Test Suite Distributed Run in any browser Submit results back to central server

    UI Testing Automation Manual user tests

  • 8/3/2019 history-of-jquery-1193847419986134-5

    23/27

    jQuery UI Refine, improve

    Release new widgets

    More corporate support

  • 8/3/2019 history-of-jquery-1193847419986134-5

    24/27

    Internationalization Individual language sites

    Dedicated documentation

  • 8/3/2019 history-of-jquery-1193847419986134-5

    25/27

    Forums Mailing List just isnt scaling

    Very frequent request

    Probably better suited to audience

  • 8/3/2019 history-of-jquery-1193847419986134-5

    26/27

    Questions?

  • 8/3/2019 history-of-jquery-1193847419986134-5

    27/27