2月8日、jQueryチームは、新バージョンである「jQuery 4.0.0 ベータ版」をリリースした。これには多くの修正やパフォーマンス向上、一部の破壊的な変更が含まれている。特筆すべきは、IE 10 やそれより古いバージョンへのサポートが終了し、Legacy Edge やiOS <11、Firefox <65、Android Browserなどの古いブラウザへの対応も削除されたことだ。
主な変更点
1. Goodbye IE<11
IE 10 やそれより古いバージョンへのサポート終了により、サイズが 867 gzipped バイト減少した。これは、今後の段階的なサポート終了の一環であり、jQuery 5.0 でのIE 11 サポート終了も視野に入れている。
2. Deprecated APIs removed
長らく非推奨とされてきたAPIが削除された。これらは主に内部向けであるか、現在のサポートブラウザでネイティブな代替手段が存在するものだった。
3. focusin
と focusout
イベント順序変更
フォーカスイベントの順序に関するブラウザ間の一貫性が確立され、これに伴い jQuery 4.0 では順序が変更された。これはW3Cの最新仕様に従ったもので、以前の jQuery の順序からの変更だ。
4. FormData
サポート
jQuery.ajax
が FormData
を含むバイナリデータのサポートを追加した。これにより、バイナリデータが文字列に変換されることなく、より予測可能な動作が期待される。
5. Automatic JSONP promotion removed
jQuery.ajax
において、dataType: "json"
の場合に自動的に JSONP リクエストに変換される仕様が削除された。これにより、CORSの使用が推奨され、予期せぬ動作を回避できるようになった。
6. jQuery source migrated to ES modules
jQueryのソースコードが AMD から ES モジュールに移行し、パッケージングには Rollup が採用された。
7. Trusted Types and CSP
jQuery 4.0 では Trusted Types のサポートが追加され、CSPディレクティブを守りつつ HTML を jQuery メソッドに渡すことができるようになった。
8. Upgrading
jQuery 3.0 以上からのアップグレードでは互換性の問題はほとんど発生しないとされている。詳細な情報は 3.5 Upgrade Guide や 3.0 Upgrade Guide を参照してほしい。
9. Updated slim build
Slim ビルドは Deferreds と Callbacks の削除により、サイズが 20k バイト未満に縮小された。主にIE11以外のブラウザではネイティブPromisesを使用することが推奨されている。
ダウンロードと詳細情報
新バージョンは jQuery CDN や npm パッケージマネージャーを通じて入手できる。詳細なダウンロード情報や CDN へのリンクは こちら から確認できる。
このベータ版の詳細情報は jQuery 4.0.0 BETA! を参照してほしい。