Microsoft to Expand its Collaboration with the jQuery Community

Posted on by

The jQuery Project is excited to announce that Microsoft is expanding its support of the jQuery JavaScript Library through new initiatives, to include code contributions, product integration, and the allocation of additional resources.

Building on two years of collaboration with the jQuery Project, Microsoft announced today at MIX 2010 that it will be working with the jQuery Core Team and community to provide source code that will help to further advance the jQuery JavaScript Library. The planned contributions target specific functionalities in areas of mutual interest. They include:

  • Templating
  • Script Loading
  • Data Binding

The initial focus will be on a new templating engine that will allow for easy and flexible data rendering via defined templates. Microsoft has submitted a proposal for public review along with an experimental plugin, and is actively collaborating with the jQuery team and community on a unified implementation. The templating engine will be reviewed and considered for inclusion into the jQuery JavaScript Library or maintained as an official jQuery plugin.

Microsoft will also ship a current release of the jQuery JavaScript Library in both Visual Studio 2010 and ASP.NET MVC as well as continue to host current versions of the library on the Microsoft CDN.

Lastly, Microsoft will be providing resources to assist in QA testing of jQuery in new environments to ensure continued stability and longevity of the library.

We see these contributions as a tremendous benefit to the jQuery effort and community and look forward to continued collaboration with Microsoft.

jQuery Conference 2010: San Francisco Bay Area Announced

Posted on by

Microsoft Silicon Valley Research CenterThe jQuery Project is very excited to announce the dates for our first-ever San Francisco Bay Area conference. The conference will be held at the Microsoft Silicon Valley Research Center in Mountain View, California on April 24th and 25th, 2010.

The San Francisco Bay Area conference is the second of four events planned by the jQuery Project in 2010. The first was the jQuery14 event, and additional conferences are being planned in Europe and on the East Coast for later this year.

This venue is the largest that the project has worked with to date (Harvard Law School in ‘07, the MIT Stata Center in ‘08 and Microsoft New England Research Center in ’09) and we expect to sell out very quickly.

Registration is currently scheduled to open on Wednesday, March 17th; tickets will be priced at $199. In addition to General Admission tickets, we’re offering a limited number of discounted student tickets priced at $99, with a valid student ID.

Watch the jQuery blog or jQuery Twitter feed for notification when registration opens.

A brief synopsis of some of the content that you’ll be able to expect:

  • jQuery
  • jQuery UI
  • jQuery Plugins
  • Complex Application Development
  • jQuery Case Studies

In addition to two days of jQuery sessions, for the first time we’ll be adding an additional day of jQuery training, prior to the main event. The training will be provided by appendTo and focused on helping you and your team get up to speed on jQuery prior to attending the conference. The training will cover the following topics:

  • Introduction to jQuery
  • Finding Something
  • Doing Something With It
  • Chaining
  • Introduction to jQuery UI
  • Implementing jQuery UI Widgets

The training will be held on April 23rd at the Microsoft San Francisco offices in downtown San Francisco; tickets will cost $299. All proceeds from training go to the jQuery Project.

Interested in speaking? Please fill out our call for speaking submissions form and watch the jQuery Blog for updates.

jQuery 1.4.2 Released

Posted on by

jQuery 1.4.2 is now out! This is the second minor release on top of jQuery 1.4, fixing some outstanding bugs from the 1.4 release and landing some nice improvements.

I would like to thank the following people that provided patches for this release: Ben Alman, Justin Meyer, Neeraj Singh, and Noah Sloan.

Downloading

As usual, we provide two copies of jQuery, one minified (we now use the Google Closure Compiler as the default minifier) and one uncompressed (for debugging or reading).

You can feel free to include the above URLs directly into your site and you will get the full performance benefits of a quickly-loading jQuery.

Additionally you can also load the URLs directly from either Google or Microsoft’s CDNs:

New Features

A full list of the API changes can be found in the 1.4.2 category on the jQuery API site.

In this release we’ve added two new methods: .delegate() and .undelegate(). These methods serve as complements to the existing .live() and .die() methods in jQuery. They simplify the process of watching for specific events from a certain root within the document.

For example:

$("table").delegate("td", "hover", function(){
	$(this).toggleClass("hover");
});

This is equivalent to the following code written using .live():

$("table").each(function(){
	$("td", this).live("hover", function(){
		$(this).toggleClass("hover");
	});
});

Additionally, .live() is roughly equivalent to the following .delegate() code.

$(document).delegate("td", "hover", function(){
	$(this).toggleClass("hover");
});

What’s Changed?

There has been some large code rewrites within this release, both for performance and for fixing long-standing issues.

Performance Improvements

As is the case with virtually every release of jQuery: We’ve worked hard to continue to improve the performance of the code base, making sure that you’re provided with the best performing JavaScript code possible.

According to the numbers presented by the Taskspeed benchmark we’ve improved the performance of jQuery about 2x compared to jQuery 1.4.1 and about 3x compared to jQuery 1.3.2.

jQuery Taskspeed Results (Feb 14, 2010)

Specifically we’ve improved the performance of 4 areas within jQuery:

While comprehensive benchmarks like Taskspeed can be interesting if deconstructed into individual sub-tests for further study, as a project we tend to stay away from using them as an accurate measure of true, overall, library performance. Considering how many aspects make up a library, not to mention the different techniques that they offer, cumulative results rarely reflect how an actual user may use a library.

For example, we saw significant overall performance speed-ups in Taskspeed simply by optimizing the $("body") selector because it’s called hundreds of times within the tests. Additionally we saw large gains by optimizing .bind() and .unbind() by a fraction of a millisecond – an inconsequential amount – especially considering that any cases where you would bind hundreds of events you would likely want to use .live() or .delegate() instead.

We’ve collected some results from the other major libraries as well but are less interested in those results and far more interested in the performance improvements that we’ve made relative to older versions of jQuery itself.

We will continue to work on optimizing the jQuery code base – indefinitely. It’s always a major concern for us to try and provide the fastest JavaScript/DOM-development experience possible. And yes, there will likely always be ways to gain additional performance – either through internal optimizations or by pushing critical functionality off into browser-land for standardization.

Event Rewrite

The largest internal changes have come through a much-needed structural rewrite of the events module. Many quirky issues related to event binding have been resolved with these fixes.

Namely event handlers are no longer stored as object properties in jQuery’s internal object store (with metadata attached to the handlers). Instead they’re now stored within an internal array of objects.

If you’ve ever had the opportunity to play around with .data("events") on a jQuery element you would find that it returns an object with all the event types currently bound, within it.

To enumerate some of the changes that have occurred during this rewrite:

  • It’s now possible to bind identical handlers with different data, namespaces, and event types universally.
  • Execution of event handlers will continue after one handler removes itself (or its sibling handlers).
  • We no longer attach data/namespace information directly to the event handlers (only a unique tracking ID).
  • We no longer use proxy functions, internally, to try and encapsulate handlers.
  • Execution order of events is now guaranteed in all browsers. Google Chrome had a long-standing error in their object-looping logic that has been routed around.

As a side-effect of these changes we had to change the newly-exposed special add/special remove APIs in order to accommodate the new event data objects. Ben Alman is in the process of writing up a large tutorial on jQuery’s special event system and we will be making additional announcements when that occurs.

Bug Fixes

There were a total of 40 tickets closed in this minor release. Some relating to differences between jQuery 1.3.2 and jQuery 1.4.x, some fixing long-standing issues (like in the case of the event module rewrite).

Raw Data

This is the raw data that we collected to generate the aforementioned charts.

	jQuery 1.3.2	jQuery 1.4.1	jQuery 1.4.2	Prototype 1.6.1	MooTools 1.2.4	Dojo 1.4.1	YUI 3.0.0
FF 3.5	2182	806	 565	 2156	 1073	 575	 1885
FF 3.6	1352	677	 519	 2067	 857	 750	 1494
Opera	983	697	 222	 793	 678	 218	 1201
Safari	610	435	 252	 315	 235	 238	 612
Chrome	1591	703	 293	 271	 312	 222	 745
IE 8	2470	1937	 1141	 3045	 4749	 1420	 2922
IE 7	4468	3470	 1705	 9863	 10034	 1737	 5830
IE 6	6517	4468	 2110	 13499	 11453	 2202	 7295

14 Days of jQuery Summary: Days 8-14, jQuery 1.4.1 Released

Posted on by

In case you’re not following along with the 14 days of jQuery, here’s a summary of what has been released for days 8-14.

Highlights

On Day 12, the jQuery team released jQuery 1.4.1, the first bug release to jQuery 1.4. jQuery 1.4.1 is now the latest release of jQuery; take a moment to review the 1.4.1 release notes.

On Day 13, the team announced the new jQuery Meetups site. We want to help foster local meetups and eventually try to provide more resources to your groups.

jQuery Meetups

On Day 14, the jQuery UI team released jQuery UI 1.8 Release Candidate 1. The team would love you to test and provide feedback with bugs or comments in the jQuery UI Development forum.

Full Recap

Day 8

  • The jQuery Project
  • jQuery.org

Day 9

  • jQuery Workshop Giveaway
  • jQuery Podcast Episode 8: api.jquery.com
  • jQuery 1.4 Hawtness #3, with Paul Irish
  • jQuery API Key Navigation

Day 10

  • jQuery 1.4 Hawtness #4, with Paul Irish

Day 11

  • Evented Programming with jQuery, Yehuda Katz
  • Behind the 14 Days of jQuery

Day 12

  • jQuery 1.4.1 Released
  • jQuery 1.4 Hawtness #5, with Paul Irish

Day 13

  • jQuery Meetups
  • jQuery 1.4 Hawtness #6, with Paul Irish
  • Paul Irish and Dave Methvin Join the jQuery Team

Day 14

  • jQuery UI 1.8rc1

Sponsors and Donations

Again, events like these are not possible without support from our great sponsors and from you, the jQuery Community. We’d like to thank everyone who has donated during this campaign. We received donations from 653 people, and we are truly grateful to all who contributed. If you missed the campaign, you can still let us know how much jQuery makes your life easier by sending a tax-deductible donation or by showing our sponsors some love for their support.

Netflix

Netflix, Inc. (NASDAQ: NFLX) is the world’s largest online movie rental service, with more than 11 million subscribers. For only $8.99 a month, Netflix members can instantly watch unlimited movies and TV episodes streamed to their TVs and computers and can receive unlimited DVDs delivered quickly to their homes.

JupiterIT

Jupiter provides expert web application development, support services, and training. Committed to open source, Jupiter collected its global experience delivering enterprise JavaScript applications and made it publically available as JavaScriptMVC.

appendTo

appendTo, the jQuery company, delivers industry-leading jQuery training and support services to the web development community and corporations worldwide. Leveraging the power of the Write Less, Do More JavaScript library and the vast experience of jQuery Team Members, appendTo is at the forefront of propelling the jQuery movement into the next generation of open source technology advancements

Oxide Design

Oxide Design Co. is a communications and information design firm. We specialize in corporate identity, brand strategy, packaging, print, and web site design. We clarify ideas to create effective design.

Fusionary

We are Fusionary, an award-winning web and interactive studio. We’ve been creating things online since 1995 and our clients love us.

The team hopes you enjoyed this online conference celebrating the 1.4 release of jQuery. We would love to hear your feedback. Please submit your feedback in this thread on the new jQuery Forum.

14 Days of jQuery Summary: Days 1 – 7

Posted on by

In case you’re not following along with the 14 days of jQuery, here’s a summary of what has been released thus far.

Pre Release Day 1

  • New jQuery API Site

Pre Release Day 2

  • jQuery 1.4rc1

Day 1

  • jQuery 1.4 Released
  • jQuery 1.4 Live Q&A

Day 2

  • HD version of jQuery 1.4 Q&A
  • Media Temple Giveaway
  • jQuery Podcast episode 7 with John Resig

Day 3

  • Internal Changes in jQuery 1.4, with John Resig

Day 4

  • Getting Involved in the jQuery Community, with Karl Swedberg

Day 5

  • appendTo Training Drawing
  • jQuery 1.4 Hawtness #1, with Paul Irish

Day 6

  • jQuery In The Enterprise

Day 7

  • New jQuery Forum
  • jQuery 1.4 Hawtness #2, with Paul Irish

We still have 7 more days of jQuery 1.4 to come with more video’s and more releases to announce.

Again, events like these are not possible without support from our great sponsors and from you, the jQuery Community. We’d like to thank everyone who has donated so far, and we’d like to remind everyone that you will receive a free ebook with the donation of $20 or more throughout the 14 Days of jQuery.

Media Template Giveaway

Each day during the 14 days of jQuery, a web developer will receive a free (gs) Grid-Service account for one year from the jQuery Project’s web hosting provider, Media Temple. A grand prize winner will receive a 13″ MacBook Pro!

In order to enter the contest, you must submit a link to your coolest use of jQuery. A winner will be chosen each day during the 14 Days of jQuery. The grand prize winner will be announced on Friday, January 29th.

Check the Media Template Giveaway webpage for more details about the contest and to see the announced daily winners. There are only 7 days left, so enter now!

Check out jQuery Enlightenment!

jQuery EnlightenmentjQuery team member Cody Lindley has published the jQuery Enlightenment book, and if you haven’t checked it out yet, you’ll definitely want to. “Each chapter contains concepts essential to becoming a seasoned jQuery developer,”‘” so even if you’ve already got your copy, pick one up for a friend who’s just learning! Even better, a percentage of all sales goes directly back to the jQuery project and helps fund future releases and projects. A big thank you to Cody for his generous donation for the 14 Days of jQuery campaign!

14 Days of jQuery and the New API Browser

Posted on by

It’s the start of a new year, and the jQuery team’s been hard at work. We’ve been up day and night working to crank out the upcoming jQuery 1.4 release, and there’s a LOT to announce! So much, in fact, that we’ll need fourteen full days to get it all out there… As such, I’d like to announce The 14 Days of jQuery 1.4!

The New jQuery 1.4 Site

Beginning on January 14th, we’ll start a fourteen-day event. Each day we’ll have fresh videos and announcements — there’ll be code releases, project-related updates, and jQuery UI goodness, among other things. In addition to the announcements, we’ll also be releasing a set of videos over the 14 days with talks and tutorials relating the jQuery 1.4 release and other general jQuery topics. You’ll want to check back at jQuery14.com every day during the two weeks to see what’s new, or sign up to be notified via email. Think of it like an online conference, only longer, freer, and with a bit of mystery and suspense!

But Wait, There’s More!

We’ve got a lot planned for January 14th, but it seemed good to whet your appetite and pre-release some tasty jQuery morsels. Head over to jQuery14.com to learn all about the brand-new jQuery API site:

Be sure to subscribe to the jQuery14.com site or to the @jquery Twitter account for all the updates during these upcoming weeks.

Free Books, Anyone?

The jQuery project is a non-profit, open-source effort, and we rely heavily on donations and contributions to help fund everything we do. We’ll be running a fundraising drive starting now and throughout the 14 Days of jQuery. If you’re a jQuery user, show your support by making a tax-deductible donation of $20 USD or more to the project during the event, and you’ll receive a free jQuery book with your donation.

It’s always important to mention that much of this would not be possible without the help of the jQuery project sponsors; Netflix, JupiterIT Consulting, appendTo, Fusionary Media and Oxide Design Co have all signed on as official sponsors of the 14 Days of jQuery 1.4, along with our favorite jQuery book publishers, Manning, Packt, jQuery Enlightenment, and O’Reilly.

That’s it for now — head on over to jQuery14.com for much more to come!

jQuery 1.4 Alpha 2 Released

Posted on by

jQuery 1.4 Alpha 2 is released! This is the second alpha release of jQuery 1.4 (alpha 1 was released previously). The code is stable (passing all tests in all browsers we support), feature-complete (we’re no longer accepting new features for the release), and needs to be tested in live applications.

Grab the code:

NOTE: If you’re using jQuery 1.4a2 and you run into an error please make sure that you’re using the regular version of the code, it’ll make it easier to spot where the error is occurring.

How can I help?

To start, try dropping the above un-minified version of jQuery 1.4a2 into a live application that you’re running. If you hit an exception or some weirdness occurs immediately login to the bug tracker and file a bug. Be sure to mention that you hit the bug in jQuery 1.4a2!

We’ll be closely monitoring the bug reports that come in and will work hard to fix any inconsistencies between jQuery 1.3.2 and jQuery 1.4.

With your input we should be able to produce a solid release. Right now we’re looking to push out at least one beta around the beginning of the new year and a final release candidate early in January. The final release will occur on January 14th, coinciding with jQuery’s 4th birthday. Thanks for your help in reviewing jQuery 1.4a2!

jQuery 1.4 Alpha 1 Released

Posted on by

Hot off the presses: jQuery 1.4 Alpha 1 is released! This is the first alpha release of jQuery 1.4. The code is stable (passing all tests in all browsers we support), feature-complete (we’re no longer accepting new features for the release), and needs to be tested in live applications.

Grab the code:

NOTE: If you’re using jQuery 1.4a1 and you run into an error please make sure that you’re using the regular version of the code, it’ll make it easier to spot where the error is occurring.

How can I help?

To start, try dropping the above un-minified version of jQuery 1.4a1 into a live application that you’re running. If you hit an exception or some weirdness occurs immediately login to the bug tracker and file a bug. Be sure to mention that you hit the bug in jQuery 1.4a1!

We’ll be closely monitoring the bug reports that come in and will work hard to fix any inconsistencies between jQuery 1.3.2 and jQuery 1.4.

What to Watch For

There are a few areas in jQuery that have seen extensive changes since 1.3.2 was released:

  • live was drastically overhauled and now supports submit, change, mouseenter, mouseleave, focus, and blur events in all browsers. Also now supports context and data.
  • append, prepend, etc. have been heavily optimized.
  • add has been adjusted to always return elements in document order.
  • find, empty, remove, addClass, removeClass, hasClass, attr, and css have been heavily optimized.

Full details concerning the release are forthcoming – for now we just need your help in catch regressions. Some more details can be found in John Resig’s keynote at the 2009 jQuery Conference.

Note: There are still a few open bugs that we will be reviewing before jQuery 1.4 final is released.

With your input we should be able to produce a solid release. Right now we’re looking to push out at least one more alpha before the holiday season and a final release candidate early in January. Thanks for your help in reviewing jQuery 1.4a1!