jQuery 3 Release Notes
jQuery 3.0.0, released on June 9, 2016, marks a significant update focused on modern browsers, improved performance, and cleaner code. This version drops support for IE6-8, aligning with current web standards while providing a slim build option. It requires browsers like IE9+, Chrome, Firefox, Safari, and Opera with native Promise and animation support.
jQuery 3.0 maintains API compatibility for most code but includes breaking changes to remove legacy features. The release emphasizes async handling with Promises and better error management. Use jQuery Migrate 3.0 to identify issues during upgrades from 1.x or 2.x.
Browser Support Changes
jQuery 3.0 ends support for IE6-8, focusing on IE9+ and modern evergreen browsers. This removes polyfills and legacy code paths, reducing bundle size.
Developers needing IE6-8 should use jQuery 1.12. The slim build excludes AJAX and effects for smaller files in animation-free projects.
New Features
Introduced jQuery.Deferred with full Promise/A+ compliance, including .then() filtering. Added requestAnimationFrame for smoother animations where supported.
New .show() and .hide() preserve CSS box model. jQuery.when() handles non-Promise values better.
Performance Improvements
Selector engine optimizations speed up :visible and :hidden up to 17x faster. DOM manipulation is quicker with reduced reflows.
Overall bundle is smaller due to removed legacy support, with faster startup in modern environments.
Breaking Changes
| Change | Details / Replacement |
|---|---|
| Deferred exceptions | Uncaught exceptions in callbacks throw errors; wrap in try/catch or use .catch() |
| jQuery.ajax scriptCharset | Only for cross-domain; use server-side charset |
| SVG class manipulation | Uses classList; no more space-separated strings in className |
| jQuery.swap | Removed; internal method |
| Animation completion | Promises attach to elements, not animations |
| show/hide with display none | Respects original display value |
| Data events | No longer trigger custom events on set |
| Focus/blur with delegation | Use focusin/focusout for bubbling |
| Removed APIs | .selector, .context on collections; jQuery.parseHTML no context |
Security Enhancements
Improved handling of cross-domain scripts and better error reporting in Deferreds to prevent silent failures.
SVG documents load more securely without executable code risks.
Deprecations
Deprecated jQuery.isArray() for Array.isArray(). Positional selectors like :eq warned for future removal.
Legacy event aliases like .load() encouraged to use .on().
Removals
Removed IE6-8 specific code, old Android 2.3 support, and deprecated methods from 1.x.
Slim build excludes AJAX/effects by default.
Migration and Support
Use jQuery Migrate 3.0 to detect issues. Upgrade guide covers Deferred changes and SVG handling.
Download from code.jquery.com or npm. The 3.x branch receives patches until 4.0.