14 points par GN⁺ 2026-01-19 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • 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

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.

Aucun commentaire pour le moment.