- Environ 10 ans après, mise à jour de version majeure avec la sortie officielle de jQuery 4.0.0
- Fin de la prise en charge d’IE 10 et des navigateurs anciens, allègement du code et renforcement de la conformité aux standards modernes ; la plupart des utilisateurs peuvent effectuer la mise à niveau sans modifier leur code
- Transition vers une structure basée sur les modules ES avec l’adoption de Rollup pour la build, afin d’assurer la compatibilité avec les environnements de développement modernes
- Ajout de la prise en charge de Trusted Types et CSP pour limiter au minimum les conflits avec les politiques de sécurité
- Suppression des API dépréciées et réduction de la build slim pour améliorer les performances et la maintenabilité
Aperçu principal de jQuery 4.0.0
- jQuery 4.0.0 est une grande release majeure publiée après environ 10 ans, aboutie au terme d’un long cycle de développement et de plusieurs préversions
- La plupart des utilisateurs peuvent effectuer la mise à niveau sans modifier leur code
- Suppression du code legacy et des paramètres privés accumulés dans les versions précédentes
- Un guide de migration et le plugin jQuery Migrate sont fournis pour faciliter la transition depuis les versions antérieures
- La distribution est disponible via le CDN officiel et npm ; les autres CDN seront mis à jour progressivement
Changements de prise en charge des navigateurs
- Fin de la prise en charge d’IE 10 et versions antérieures ; IE 11 sera supprimé progressivement avec jQuery 5.0
- Fin de la prise en charge de Edge Legacy, des anciennes versions d’iOS (au-delà des 3 versions les plus récentes), des anciennes versions de Firefox (au-delà des 2 versions les plus récentes) et d’Android Browser
- Si vous devez prendre en charge d’anciens navigateurs, il est recommandé de rester sur jQuery 3.x
Compatibilité Trusted Types et CSP
- Ajout de la prise en charge de Trusted Types pour traiter en toute sécurité les objets TrustedHTML
- La plupart des requêtes de script asynchrones passent désormais par des balises ``, afin d’éviter les erreurs CSP
- En cas d’utilisation de l’option
"headers", XHR reste possible, mais l’usage de scriptAttrs est recommandé
Transition vers les modules ES
- Le code source de jQuery a été entièrement migré d’AMD vers les modules ES
- Rollup a été adopté comme outil de build à la place de RequireJS
- Des tests distincts sont exécutés pour la base en modules ES
- `` permet d’assurer la compatibilité avec les navigateurs modernes et les outils de build
Suppression des API dépréciées
- Les API marquées comme non recommandées depuis longtemps ont été totalement supprimées
- Fonctions supprimées :
jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, jQuery.fx.interval
- Remplacements : utiliser les méthodes natives comme
Array.isArray(), JSON.parse(), String.prototype.trim(), Date.now(), etc.
- Avec la suppression du code lié à IE, la taille diminue d’environ 3 Ko en gzip
Suppression de méthodes réservées à l’interne
- Les méthodes push, sort, splice utilisées uniquement en interne ont été retirées du prototype jQuery
$elems.push(elem) peut être remplacé par [].push.call($elems, elem)
Changement de l’ordre des événements de focus
- Uniformisation selon l’ordre des événements focus/blur défini par la spécification W3C
- Nouvel ordre : blur → focusout → focus → focusin
- Cet ordre diffère de l’ancien comportement de jQuery, ce qui nécessite une vigilance de compatibilité
- Tous les navigateurs, sauf IE, suivent déjà cet ordre
Améliorations de la build slim
- Suppression de Deferreds et Callbacks, réduisant la taille du fichier à environ 19,5 Ko (gzip)
- La plupart des navigateurs prenant en charge les Promise natives, elles peuvent servir de remplacement
- Si la prise en charge d’IE11 est nécessaire, il est recommandé d’utiliser la build principale ou un polyfill Promise
- La build slim exclut les modules liés à Ajax et à l’animation, ce qui la rend environ 8 Ko plus légère
Téléchargement et distribution
- Téléchargeable depuis le CDN officiel et npm
- Version stable :
- Version slim :
- Commande d’installation npm :
npm install jquery@4.0.0
Contributeurs et 20e anniversaire
- De nombreux contributeurs open source ont participé via des correctifs, des rapports de bugs et des tests
- Pour les 20 ans de jQuery, l’équipe s’est retrouvée à Dallas, avec la participation du fondateur John Resig via Zoom
Résumé des principaux changements de code (changelog)
- Ajax : amélioration du traitement des données binaires, prévention des erreurs CSP, renforcement de la gestion des erreurs JSONP
- CSS : correction du calcul de taille des éléments ``, amélioration du traitement des espaces dans les variables CSS, suppression du hook
opacity
- Core : transition
AMD → modules ES, utilisation de DOMParser, suppression du code de compatibilité avec les anciens navigateurs
- Event : traitement natif des événements focus/blur, suppression du shim
event.which
- Selector : intégration de Sizzle, amélioration de
:has et :even/:odd, ajout du chaînage uniqueSort
- Docs : mise à jour des liens HTTPS, révision des documents README et CONTRIBUTING
- Release : automatisation du processus de build et de distribution, migration vers
release-it
Résumé
- jQuery 4.0.0 est une refonte structurelle alignée sur les standards du Web moderne et les politiques de sécurité
- Suppression du code legacy, modularisation ES, renforcement de la sécurité et allègement consolident les bases de la maintenance à long terme
- La release est considérée comme symbolique pour les 20 ans de l’écosystème jQuery
Aucun commentaire pour le moment.