This post takes a look ahead at jQuery 2.0 and why your code could potentially “break” when deprecated/removed jQuery functions produce “function not defined” (or such) errors. This official post states that jQuery 2.0 will remove support for IE 6/7/8 oddities such as borked event model, IE7 “attroperties”, HTML5 shims, etc. It also suggests that If you need IE 6/7/8 support, choose 1.9; otherwise you can use 2.0. As jQuery plugins start to break I think we are also going to see a lot of people Migrating Earilier Versions of jQuery to jQuery 1.9.
Looking forward to jQuery 2.0
jQuery 2.x will be much leaner (hundreds of lines of code which support IE to be removed). However jQuery 1.9.x will maintain support for IE so you might start seeing something like this:
<!--[if lt IE 9]> <script src="jquery-1.9.x.js"</script> < ![endif]--> <!--[if gte IE 9]> <script src="jquery-2.x.js"</script> <![endif]-->
There are reasons for and against supporting older versions of Internet Explorer. From my experience working for various companies as a contractor.
- IE6 is dead and no longer supported (0.3%).
- IE7 is close to being dead (1.0%). Most government departments now are running builds with IE8+ but the process of system image upgrades is slow at best so websites need to support IE7 still but are slowly saying “no support for IE7” as stats drop.
- IE8/IE9 is still supported (6.4%,5.9%).
- IE10 (0.8%) surprisingly has less usage than IE7.
Interested in the source code?
So, has removing support for IE made jQuery faster?
Yes and no.
Benchmark tests using jsperf – jQuery 1.9.1 vs. 2.0.0 beta suggests:
- ID/Class selecters faster
- Interation slightly slower
- CSS getter/setter same
- .find() slightly faster
- Non-existent ID/Class slightly faster
- Filter next/prev slightly slower
Filesize drops from 91kb to 81kb minified versions.