jQuery Chicago Pebble Giveaway and Filing Extension

Posted on by
jQuery Conference Chicago logo

As we announced at the end of jQuery San Diego in February, we’re excited that the next stop for #jqcon is Chicago! In case you missed the news, we’ll be setting up shop in the City That Never Sleeps Isn’t Windy on September 12th & 13th, 2014. We’re partnering again with Bocoup to make it a four-day affair, bringing you Roost on September 11th & 12th.

Speaker Filing Extension

While we can’t do anything about today’s deadline for those of us in the US to file our tax returns, we can offer our own form of amnesty: a two-week-plus extension of our Call for Speakers until the end of April! If you got swamped in receipts – or anything else – and thought you’d missed your chance to submit, breathe a sigh of relief, and if you didn’t know the call was even open, this should hopefully provide you enough time to come up with a solid talk proposal. (And if you already have submitted, thanks!)

We’re experimenting a bit with our time slot construction in Chicago, so if you have a talk that you feel needs to go deep into technical material and run for 45 minutes or an hour, or want to lead a more hands-on-workshop type of session for even longer, we’re eager to hear about it and encourage you to to get in touch with questions about your ideas at content@jquery.org or on the #jquery-content channel on Freenode.

Join Us

Our early bird tickets have been going fast and will likely be gone before our original early-bird cutoff of May 31st, so if you’re aiming to keep another 50 bucks in your deep-dish pizza budget, you’ll want to act sooner than later!

The conference will be right downtown at the Sheraton Chicago Hotel & Towers, and we’re able to offer attendees of both jQuery Chicago and Roost a discounted rate if you register as part of our room block.

Join Us…Together!

We’ve always held that jQuery is better with friends, and if you’ve got colleagues you want to attend with or send to the conference, we have group packages available that include sponsorships and discounts. Get in touch with us for a prospectus and to figure out how to get your team to Chicago!

A “Rocky” Start

Pebble logo If the prospect of jQuery’s first foray into the Old Northwest wasn’t exciting enough, we’re psyched to inform you that we’ll be giving away classic Pebble devices throughout ticket sales. We’ll take a random draw of people who’ve bought tickets each month and select 2-3 folks who’ll receive a Pebble from us (and the kind folks at Pebble who’ve donated the devices) at the conference in September. The sooner you buy, the better your odds, so what are you waiting for? This post is over anyway!

Browser Support in jQuery 1.12 and Beyond

Posted on by

With Microsoft ending Windows XP support this month, we’re giving the jQuery community some long-lead-time notice on changes to browser support.

First of all, don’t panic! Nothing is really changing with respect to the browsers that can run jQuery for at least six more months. Our goal is to let everyone in the web development community know what the jQuery team intends to do over the next year, so that you can plan accordingly.

What’s Changing?

There are no firm dates, but we plan on releasing jQuery core versions 1.12 and 2.2 this year. jQuery 1.13/2.3 will be released some time in 2015.

jQuery 1.12: This will be the last release to support Internet Explorer 6 and 7. As of today, no feature requests or bug fixes will be landed for them. Only serious regressions for these browsers will be fixed in patch releases (e.g., 1.12.1). jQuery 1.13 will support IE8 as its minimum browser.

Both jQuery 1.12 and 2.2: These will be the last releases to support Opera 12.1x and Safari 5.1. As of today, no feature requests or bug fixes will be landed for them. Only serious regressions for these browsers will be fixed in patch releases (e.g., 1.12.1 or 2.2.1).

Both jQuery 1.13 and 2.3: We will remove patches and workarounds that are specific to API conformance for the browsers we no longer support, in order to simplify the code base.

What you need to do: If your projects use a package manager that pulls in the latest release of jQuery, keep in mind that the 1.12-to-1.13 or 2.2-to-2.3 upgrade will reduce browser coverage. You may want to stay on 1.12 or lower if support for older browsers is required. See the instructions of your package manager for details on how to do that.

The Meaning of “Support”

Defining what “support” means is trickier than you might think. Under the premise that “untested code is broken code,” the jQuery core team prefers to say we fully support a browser if the project regularly runs unit tests against that browser. The unit tests ensure that every API returns a consistent set of results in all browsers.

Even when we support a browser, there can be bugs we can’t reasonably fix. For example, Internet Explorer 6 through 11 fire focus and blur events asynchronously and the code required to make them appear synchronous would be significant. Safari on iOS doesn’t support the onbeforeunload event which is pretty much impossible to shim. Until last month, Firefox didn’t respect overflow: hidden on a fieldset element. We try to work with browser vendors to get these bugs fixed.

On browsers that we don’t officially support, we still work hard to eliminate “killer bugs” such as script errors during initialization that make the page totally unusable. If you want to see the lengths to which we go to deal with obscure problems, look at this browser-crashing Android 2.3 bug on Japanese phones which was extremely intermittent and hard to diagnose. With the help of several users we were able to track down and work around the problem.

It comes down to this: We can only ensure high-quality continuing support for the browsers and environments we constantly unit-test. However, we will try to provide some reasonable level of support to browsers in any popular environment. The highest priority will be on ensuring the browser doesn’t throw errors. Low priority will be put on ensuring that old or rare browsers produce the exact same API results as modern browsers.

Who Uses Old Browsers Now?

When looking at browser stats, don’t look at where they are today. Think about where they will be in 2015. All told, we think all these browsers will be in the small single digits of market share by then. If numbers from StatCounter can be believed, these browsers are already there and will be even less prevalent when jQuery finally drops support.

Ultimately these whole-Internet stats don’t matter though. What really matters is whether the visitors to your site or users of your web application are running a particular browser. That is something that only you can answer. The decision to upgrade to a new jQuery version is always in your hands as a developer.

The Myth of Browser Consistency

Today and long into the future, jQuery will still contain dozens of browser-specific fixes to normalize behavior. At this point, the most problematic and troublesome browser for jQuery 2.x is the one in Android 2.3. That version is still a significant 20 percent of the Android installed base, and still being shipped in new mobile products. Several JavaScript features like element.classList are not supported there, and it’s one of the last browsers to still require -webkit-prefixing for standardized CSS properties.

jQuery projects are all about making your development life easier, so we’ll continue to support the fixes that are needed to smooth out inconsistencies on popular browsers. As the market share of specific browsers dwindles to zero, we’ll take the opportunity to remove their patches and de-support them in order to streamline our code bases. That makes all jQuery pages a little bit faster.

jQuery 1.11.1 Beta 1 and 2.1.1 Beta 1 Released

Posted on by

It’s been a couple of months since our last releases escaped the grip of endless winter, so we thought it would be good to thaw out a beta that collects up the bugs that have been reported and fixed recently. Most of these bugs are mild as severity and frequency go, but that’s easier to say if you’re not impacted!

As with all our beta releases, we make them available so you can test against them and let us know if they fix the bugs without introducing new bugs, surprising behaviors, or regressions. Please help us out by dropping these files into your projects and pages for a quick spin. If you discover any undesirable changes, let us know at bugs.jquery.com.

The beta files are located on the jQuery CDN, you can include them directly from the CDN if you like (but don’t use them in production!). As always, the 1.x branch includes support for IE 6/7/8 and the 2.x branch does not:

http://code.jquery.com/jquery-1.11.1-beta1.js
http://code.jquery.com/jquery-2.1.1-beta1.js

Here are the bugs addressed by these releases:

Common to 1.11.1/2.1.1 Beta 1

Ajax

Attributes

Build

Core

Css

Event

Unfiled

jQuery 1.11.1 Beta 1

Css

jQuery 2.1.1 Beta 1

Ajax

Attributes

Core

Css

Event

Manipulation

Selector

Support

Supporting the Cause, Improving the Web

Posted on by

To help the jQuery Foundation accomplish its mission to improve the open web and make it accessible to everyone, we established a membership program where organizations and individuals could join the foundation to help us support our goals. In return, members are recognized both on our websites and at conferences. Since that time, a number of companies, large and small, as well as individuals, have stepped up to support the foundation and continued success of the jQuery projects. A full listing of our members is available on the member page on jquery.org.

Corporate Memberships

Corporate memberships are available in several levels based on support, ranging from Bronze to Platinum. Beyond those levels is our top level membership called our Founding members. Currently, WordPress is our single Founding member at this time and they are a huge part of the jQuery Foundation mission and we would like to say a special thank you to them. We would not be here if it wasn’t for the support of WordPress and our many corporate members at every level.

So what does a member get in return for their support of the Foundation? Depending on the level of support, there are a number of ways we recognize and thank our members. Every member is recognized on the member page. As you progress up through the different levels of membership, more benefits such as conference recognition, free and reduced price conference sponsorship packages, invitations to team meetings to discuss the development and direction of the jQuery projects, and even the ability to host jQuery licensed events of your own. For more information about the corporate membership program, e-mail us at membership@jquery.org.

I’m not a Corporation, how can I help?

We’re glad you asked. The jQuery Foundation also has an individual membership program where people can donate smaller amounts to help support the Foundation and in return, we send out some cool jQuery branded gear. When the program started, we offered three levels of membership for individuals. That just got too complicated for both the members joining as well as the folks managing the payment and gift fulfillment. There is now only one level of individual membership at the $400 per year level. If you think about it, that’s really only a little more than $1/day to help keep the jQuery Foundation running. You can see all of our individual members listed on the member page. As new members are added, they will be listed as Heroes until the transition from a 3-tier to 1-tier program is complete and everyone has merged into a single list of Individual Members. If all of this has got you itching to become part of the next wave of individual members, head on over to https://jquery.org/join/ and join our ranks.

Membership may not be an option for everyone, but there are still ways you can support the Foundation’s work. The first way is through donations. The jQuery Foundation accepts donations, both large and small, through PayPal. If that’s an option that interests you, check out our donate page. Another way to help the foundation is by grabbing yourself a nice shirt or some stickers over at DevSwag. We have partnered with DevSwag, as many other open source projects have, to license the sale of official jQuery branded clothing and other items and a portion of the proceeds from those items are donated to the jQuery Foundation.

No matter if you’re a company or an individual, we hope you’ll take the time to consider supporting the jQuery Foundation to keep us working toward making the web accessible to everyone.

One Last Thing …

We thought we would let you know one more time about the upcoming jQuery Conference in San Diego. The conference is February 12-13 and is preceded by Bocoup’s 2 day training conference Roost on February 10-11. Don’t forget to take $50 off your ticket to one or both of these events using discount code jqblog50 at checkout!

Hosting and Configuring the jQuery Servers

Posted on by

The other day, we posted about our new content workflow, but we didn’t get into how all that content is actually served. Believe it or not, jQuery doesn’t just run on jQuery.

The servers

The servers themselves are hosted at Media Temple. We have been using their VPS services for many years to host all the things we need to host, of which there are a surprising number. We use over a dozen different servers (of various sizes) hosting everything in the jQuery network including many different web sites, applications and services vital to the community and development team. The reliability of the Media Temple VPS services and network for our infrastructure has been fantastic.

The setup

We couldn’t manage all of the servers without Puppet. Puppet is a configuration management tool that makes it really easy to express server configuration in a simple scripting language. Tasks like adding a domain to the Nginx configuration can be annoying, and hard to track changes using conventional methods. Using Puppet lets us store all the server configuration needed in a git repository, and deploy new machines very easily.

Another product that really shines in our setup is Nginx. Nginx is an open source web server focused on delivering the best performance possible. On our busiest Media Temple Dedicated Virtual server around peak times, Nginx handles about 300 HTTP requests per second, of which about 30 are serving pages from WordPress via php-fpm. Nginx’s built in fastcgi_cache handles a lot of that load, and more like 2 or 3 requests per second actually make it to PHP.

Thanks for the support!

Keeping a network of servers running to support a community as large as jQuery’s is a big job. To help ensure everything runs smoothly, we rely on jQuery Infrastructure team members Adam Ulvi and Ryan Neufeld, and for server and network-related issues we count on prompt and helpful support from the Media Temple team.

To celebrate their 7 years of serving the jQuery community, Media Temple is extending a special offer on their VPS and Grid Hosting. For the next 5 days, get 50% off an annual purchase of a Grid or VPS (up to level 3) service with the code LovejQuery50.

Speaking of support, if you need any support with jQuery, or the related web sites and services, check out one of our IRC channels on freenode.

jQuery 1.11 and 2.1 Released

Posted on by

Here in the eastern part of the United States, we’re huddling in subzero temperatures and dealing with the aftermath of a snowstorm. Still, there’s nothing to brighten our moods like the pristine beauty of a freshly fallen release–no, make that TWO releases. jQuery 1.11.0 and 2.1.0 are ready to keep you warm on these dark winter nights.

You can get the files off our CDN as always, and either use them directly or download them to your own server. Our download page has all the files and information you need, including pointers to the other CDNs that carry the files. Just give those folks a few days to update!

For those of you not following along for a while, both the 1.x and 2.x branches of jQuery support all recent modern browsers and have the same API. The 1.x branch, this time 1.11.0, adds support for the older versions of Internet Explorer (IE6, 7, and 8). The 2.x branch, today played by 2.1.0, adds support for non-traditional web environments like node.js and browser plugins for Chrome and Firefox.

jQuery went through a major house-cleaning with the 1.9 release that removed some features. If you haven’t yet moved from an earlier version, see the jQuery 1.9 Upgrade Guide and let the jQuery Migrate plugin do all the heavy lifting for you.

What’s New?

You may be wondering what great new things await you in these releases. Perhaps you’re fearing that they hold a bunch of breaking changes. You just know the project lead will suggest updating things right now. There goes your whole damn week and that trip to Florida. Well fear not! We’ve fixed quite a few bugs, but the other features and changes are mainly organizational ones that don’t affect the behavior of APIs. Your code shouldn’t break, it should just run a little faster. Here are the highlights:

Fewer forced layouts: In this release we declared war on places where we might inadvertently force the browser to do a time-consuming layout. We found a few and eliminated one in particular that could occur when changing class names. This can result in a big performance boost for some pages.

Granular custom builds: Our modularity is now defined by AMD, and it is easier to build small subsets of the library when space is at a premium. If you want to know more, we’ve hidden the details in the README file where nobody ever looks.

Lower startup overhead: The new modularity and avoidance of forced layouts led us to refactor our feature detects so that they run the first time they’re needed. If you never call the API needing that feature detect, you never run that code. Previously we ran all feature detects when the page loaded, that led to delays that were generally small, but added up–especially on mobile platforms.

Published on npm: Our releases will now be published on npm so that you can use them with node or browserify. Both the 1.x and 2.x branches are available on npm, but remember that only the 2.x branch is supported to run in node.

Published on Bower: We’re now using Bower for our internal dependency management including Sizzle, so you’ll see jQuery releases on Bower as soon as they’re available.

Some people have asked about supporting other package managers inside the jQuery library, but we’ve decided to only support the two that we use internally at the moment. There are more than a dozen package/dependency managers, it would be handy if they all could agree on a single format for projects to publish information. We don’t want the package manager’s overhead to be pushed off to individual projects like jQuery.

Although the glamor always seems to be in the new stuff, we don’t like to ignore the bugs and inconveniences that people have run across while using the last version. We worked hard to knock down our bug list and tackled quite a few of them. We even fixed a bug that only occurs in IE6, better late than never!

Sourcemap changes

This release does not contain the sourcemap comment in the minified file. Sourcemaps have proven to be a very problematic and puzzling thing to developers, spawning hundreds of confused developers on forums like StackOverflow and causing some to think jQuery itself was broken.

We’ll still be generating and distributing sourcemaps, but you will need to add the appropriate sourcemap comment at the end of the minified file if the browser does not support manually associating map files (currently, none do). If you generate your own jQuery file using the custom build process, the sourcemap comment will be present in the minified file and the map is generated; you can either leave it in and use sourcemaps or edit it out and ignore the map file entirely.

We hope to bring back and improve sourcemap support in the future, but at the moment neither the design nor the implementation seem suited for situations like jQuery’s, where there are widely distributed files on CDNs. We’d like sourcemaps (and browsers supporting them) to gracefully handle situations like file renaming or missing files. See our bug ticket for more information.

Acknowledgements

This release would not have happened without the hard work of many people. Thanks to everyone who reported bugs, tried out the prerelease files, or provided constructive criticism. Particular thanks are due to Alex Robbin, Amey Sakhadeo, Anthony Ryan, Aurelio DeRosa, Chris Antaki, Chris Price, Christopher Jones, Corey Frang, Daniel Herman, Domenic Denicola, Dominik D. Geyer, Forbes Lindesay, George Kats, Guy Bedford, Ilya Kantor, Jakob Stoeck, Jeremy Dunck, John Paul, Julian Aubourg, Jörn Zaefferer, Lihan Li, Marian Sollmann, Markus Staab, Marlon Landaverde, Michał Gołębiowski, Mike Sidorov, Oleg Gaidarenko, Richard Gibson, Rick Waldron, Ronny Springer, Scott González, Sindre Sorhus, T.J. Crowder, Terry Jones, Timmy Willison, and Timo Tijhof. Colin Snover’s commentary in #jquery-dev is also a source of rare humor for the team.

Changelog

jQuery 1.11 and 2.1 (common to both)

Ajax

Attributes

Build

Core

Css

Data

Effects

Event

Manipulation

Misc

Selector

Support

jQuery 1.11

Ajax

Attributes

Build

Core

Effects

Support

jQuery 2.1

Ajax

Build

Core

Event

Getting from GitHub to WordPress

Posted on by

Maintaining an open source project as big as jQuery requires the use of various software and services. Two of the products we rely on and enjoy the most are GitHub and WordPress.

We’ve been using and loving Git and GitHub for years now. The community collaboration has been phenomenal. We’ve seen a massive uptick in community-provided bug fixes, refactors, new features, etc. Even within the team, the services provided by GitHub have provided a huge productivity boost. Forks and pull requests provide a great mechanism for sharing code and peer code reviews. The interface renders almost every file exactly how we want it to, especially Markdown. The API and service hooks provide a great way to automate various tasks.

Even longer than we’ve been using GitHub, we’ve been using WordPress to manage our various web sites. We have a surprisingly large number of them. Between project sites, API documentation, tutorials, contribution guides, events, and organization sites, the number of web sites we maintain rivals the number of code projects we maintain. WordPress provides tools which make managing this many sites with a common brand almost as simple as maintaining just one site with shared users, theme inheritance, and a great plugin architecture, providing even more hooks than GitHub.

The missing pieces

Unfortunately, our WordPress experience lacked all the collaboration tools and workflow we love. Only a few people had access to edit content, and collaboration without pull requests is painful. Managing content on api.jquery.com was an even bigger hassle because of our XML based workflow, which the WordPress editor clearly wasn’t designed for.

While GitHub has tons of tools that we love, and they even have GitHub Pages, it lacked the infrastructure we need for managing our site content. GitHub Pages have no built-in features and can’t have any server-side processing. Features like search and commenting either need to be added per site via client-side JavaScript or can’t be implemented at all.

Bringing it all together

In order to resolve these issues, we decided to find a way to bring these two products together and get the best of both worlds. It started off pretty bumpy, but we managed to do just that! Things started to really pick up when we got the support of WordPress’ Lead Developer Andrew Nacin. Nacin played a key role in getting our new infrastructure set up and ensuring we were using WordPress as efficiently as possible. With his help, and the help of a few new projects – such as node-wordpress, grunt-wordpress, and grunt-jquery-content – we were able to build exactly what we wanted.

We now manage our WordPress theme in jquery-wp-content, and the content for all of our sites are stored and managed in individual repositories on GitHub. Storing the content of each site on GitHub gives us all the benefits of tracking tasks in issues, discussions on pull requests, visual diffs for changes, etc. The content of each page is generated by grunt-jquery-content from HTML, XML or Markdown source depending on the repository. This content is then synced to WordPress using grunt-wordpress. Just like our code, all of our site content is open source and released under the terms of the MIT license, with the exception of our branding which is not licensed for use by others.

We’re now powering a dozen and a half sites with this new process, averaging 20 contributors per site. Our most popular sites for community contribution are learn.jquery.com which is nearing triple digits and api.jquery.com which currently has 50 contributors. We’re averaging 40 pull requests per site as well, showing just how beneficial this new workflow has been for the team and the community. If you’d like to join in on this community effort, you can read more about our process and how to get involved on our contribution site and help make jQuery better for everyone.

jQuery San Diego is in Three Weeks From Today – Go!

Posted on by

As I sit here in New York City in the wake of a nor’easter that just hammered the, uh, Northeast, it’s hard not for me to be excited for the next jQuery Conference, which is just three short weeks away in sunny San Diego, California. So excited, in fact, that I wanted to take a couple minutes to bring you up to speed on what we’ve got in store for you the week of February 10th!

That’s What I’m Talking About

If you missed our announcements over at @jqcon over the past few weeks, we’ve rolled out a great lineup of speakers, who will be presenting on an array of subjects covering jQuery and beyond. We’ll be hosting our first-ever guest keynotes, as we proudly welcome chat.meatspac.es creatorbro herself, Edna Piranha, who’ll share both the history and the future of the web’s first ephemeral, WebRTC-powered, animated-GIF-generating chat service, and Scott Hanselman, who’ll discuss JavaScript’s impact on application architecture and its growing appeal as a compilation target. As usual, project leads Dave Methvin and Scott González will start off each day with keynotes updating you on what’s new in jQuery, jQuery UI and jQuery Mobile development.

We’re back to our familiar two-track lineup, and this time we’ve curated them in order to help you get a well-rounded look at JavaScript and front-end development tools and techniques that you can go back home and use. As always, you’re of course free to pick and choose between talks in both tracks.

First up is our Fundamentals track. With talks ranging from debugging and scope to the basics of testing (and automating that testing), the Fundamentals track is meant to help introduce and reinforce common and emerging concepts and practices that are integral to building successful web apps today. It’s far from a refresher course, however, and also includes subjects like how to secure client side apps, responsive design, and how to organize jQuery and JavaScript applications to keep them lean and mean.

Next door, we’ll have our Code For Thought track, a wide-ranging exploration of a breadth of topics related to the ever-changing world of web application development with JavaScript. We’ll talk about how jQuery 2.0 and its modular build system make jQuery an even more viable candidate for even low-bandwidth situations, and how you can apply performance improvements in jQuery Mobile 1.4 to your own applications. We’ll spend plenty of time looking at newer technologies, including Firefox OS, new HTML5 speech APIs, and Node.js. And we’ll dive deep, discussing advanced subjects like implementing code coverage analysis, building your own tools, writing third-party JavaScript apps, and why jQuery is still an incredibly useful tool even as the browser landscape has improved over the last few years.

With over 30 talks, this is only a sampling of the speakers and subjects on offer. We’re sure jQuery San Diego will have more than a little bit of something for everyone; head on over to review the whole program to see the full abstracts for all of our sessions.

The Roost Boost

This year, we’re partnering with Bocoup to extend the festivities, bringing you a pre-conference training event in the form of Roost, a two-day intensive course on crafting modern web applications taught by Ben Alman, Irene Ros, Mike Pennisi, and Bob Holt. Roost is targeted at developers who already know JavaScript, jQuery, HTML, and CSS, and are looking to understand how to develop a better workflow for building, testing, and maintaining their applications and incorporate technologies like Backbone, RequireJS, Stylus, and more. You can check out the full training curriculum and schedule to find out exactly what’s planned.

We Like, We Like To Party

We’re happy to announce that we’re hosting a conference party at Fiesta de Reyes after the first day of talks, February 12. Located just a trolley ride away from the conference in the heart of San Diego’s Old Town, it’s a great spot and we’re looking forward to having a few hours to relax with the community – food and drinks are on us!

Brought To You By

We’d be remiss if we didn’t give a shout out to the sponsors who are stepping up to help us put together a great jQuery Conference: Diamond sponsor WordPress, Platinum sponsor MaxCDN, Gold sponsors Bocoup & BrowserStack, and Silver sponsors WalmartLabs & New Relic. Thanks! (We’re still welcoming sponsors – if you’d like to have your company be a part of #jqcon, please get in touch!)

Student Discount

We’re glad to be able to offer a discount to current students. Anyone from kindergarten right on up through graduate school may use coupon code jqstudentSD14 to save $100 off a ticket to jQuery San Diego or a combo ticket to jQCon and Roost. Though we know the discount is modest, this is the first time we’ve been able to offer a student discount of any kind, so we hope it helps. Please be advised that if you use this discount, you’ll need to show a valid student ID at registration.

I Read This Whole Blog Post, What’s In It For Me?

Fifty bucks! No joke – register now for jQuery Conference, Roost, or both using discount code jqblog50 to save an $50 on your ticket!

We’ve been working hard to make our trip to the west coast the best #jqcon yet, and hope you’ll be able to be part of the whole week. Check out the conference site for more on our program and speakers, lodging, and to buy your tickets. If you have any questions, always feel free to get in touch with us on Twitter or via e-mail.

jQuery 1.11.0 RC1 and 2.1.0 RC1 Released

Posted on by

We’re just about ready for the final release of jQuery 1.11 and 2.1! Before we release, we’d like you to sanity-check our work. It will save us both a bunch of work if you check things out now, rather than waiting for a release. If something’s not right, we can fix it before millions of people have to deal with it!

Testing is easy, just use one of these files on the jQuery CDN:

We’ve also published the files on npm for those of you using that for dependency management. This version should work properly with browserify.

This version is mainly about fixing bugs and supporting more dependency managers, so you shouldn’t expect to see compatibility issues if you’ve already migrated to 1.9 or higher. But that’s why we’re putting out a release candidate, we want this to be as stable as possible. If you do see problems, please report them at bugs.jquery.com.

Go forth and test!

Changelog

Common to both jQuery 1.11 RC1 and jQuery 2.1 RC1

Ajax

Attributes

Build

Core

Css

Data

Effects

Event

Misc

Selector

Support

jQuery 1.11 RC1

Ajax

Core

Effects

Support

jQuery 2.1 RC1

Ajax

Build

Core

Event

The jQuery Foundation and Standards

Posted on by

Most web developers think about jQuery in terms of its roots, as a library that tries to bring sanity to a disparate set of APIs and quirks that vary from browser to browser. Although that’s one of the things that jQuery was built to do, and still does, it’s not the only thing. jQuery defines a useful API that makes it as easy to work with one element as it does for a dozen. jQuery shortens verbose DOM API names and removes tedious boilerplate code, making it easier to write and to read code. jQuery adds functionality beyond the standard APIs for the work that web developers often need to do.

In short, jQuery isn’t just an API repairman for browsers. To the extent that we need to fix problems, we do it. But we’re even more interested in getting browsers to fix their problems, and in shaping future standards to avoid problems, so native APIs will work properly from the start. Then we can all build useful functionality on top of that solid foundation.

jQuery team members bring plenty of real-world experience that guide standards in the right direction. The earliest example of this is the querySelectorAll method, where John Resig pointed out that the implementation wasn’t quite what JavaScript developers needed. Unfortunately in the case of querySelectorAll, it was too late to do anything to fix the problems.

How jQuery Can Shape Standards

In order to provide input into emerging standards, the jQuery Foundation joined the World Wide Web Consortium (W3C) and ECMA International last year. In fact, it’s one of the main reasons the Foundation was formed. W3C and ECMA members tend to be representatives of the companies that make browsers and commercial software. We believe that we bring the voice of the rank-and-file web developer to the standards process.

Yehuda Katz and Rick Waldron have been active in the ECMA TC39 group, which defines the language officially known as EcmaScript but that we know as JavaScript. Rick’s excellent meeting notes can give you an inside view of the deliberations that go on during their in-person meetings.

Scott González and Kris Borchers have been working to refine the Pointer Events standard. It brings simplicity, regularity, and sanity to the handling of pointer technologies so that developers don’t have inconsistent (and conflicting!) event models for touch and mouse. During the transition, developers will be dealing with three pointer models–mouse, touch, and pointer. jQuery and jQuery UI want to simplify this transition to the standard.

Julian Aubourg has been participating on revisions to the XMLHttpRequest standard, a position for which he’s been battle-tested by jQuery’s $.ajax implementation. Knowing all the problems that jQuery has worked around provides him with experience to avoid the same problems in the future.

Scott González and TJ VanToll have been active in helping to define HTML5 input types such as <input type=”date”>, providing practical input based on experience with jQuery UI. TJ’s talk at the Portland jQuery Conference does a great job of covering the pitfalls of using HTML5 input types today, and emerging standards like Web Components that could make things easier for web developers.

The jQuery Foundation is also a strong advocate of accessibility; we want to make it easy for web developers to reach all users including those with vision or motor impairments. The W3C addresses those issues through the Web Accessibility Initiative, and specifically with Accessible Rich Internet Applications (ARIA). jQuery UI widgets are incorporating ARIA attributes, and Foundation member Deque Systems has sponsored several events on jQuery accessibility issues.

Finally, we coordinate and pass along bugs reported to jQuery that are due to standards violations in a particular browser. With most browsers updating every few months, it often doesn’t make sense for jQuery to incorporate large and complex bug fixes for temporary problems. But we’re committed to getting them fixed by the browser makers as soon as possible.

A Standards-Driven jQuery Future

jQuery isn’t a highly opinionated framework that demands control over all the DOM. In most cases you can (and often should) use the DOM APIs alongside jQuery. That was always the intended design; you can see it in aspects like the this object inside an event handler being a DOM element, not a jQuery object. About the only place where jQuery requires control is when elements in the DOM are replaced via methods like .html() or removed with a method like .empty(), so that any associated jQuery data can be cleared out.

Similarly, the built-in HTML5 input types can coexist with jQuery UI input widgets. jQuery UI is committed to providing user interface widgets that provide great functionality without sacrificing accessibility, inherently supporting standards such as ARIA.

The jQuery Foundation wants standards-based APIs and cutting-edge JavaScript features to be usable directly by developers. The good news is that the community is making good progress on that goal, and jQuery team members are helping through our participation in the standards process. Yet the continuing evolution of web standards and practices, combined with a vibrant third-party ecosystem of plugins and knowledge, still provide compelling reasons to use jQuery. Web developers deserve to have the best of both.