IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Lancement de jQuery v4.0 Beta, cette nouvelle version de la bibliothèque JavaScript ne prend plus en charge les versions d'Internet Explorer antérieures à 11

Le , par Jade Emy

29PARTAGES

16  0 
La version 4.0.0 de jQuery est en préparation depuis longtemps, mais elle est maintenant prête pour une version bêta ! Elle corrige des bogues, améliore les performances et apporte quelques changements. La prise en charge d'Internet Explorer (IE) 10 et des versions antérieures a été supprimé de cette version. Cependant, selon l'équipe de jQuery, on peux s'attendre à ce que les perturbations soient minimes.

jQuery est une bibliothèque JavaScript conçue pour simplifier la traversée et la manipulation de l'arbre HTML DOM, ainsi que la gestion des événements, les animations CSS et Ajax. Il s'agit d'un logiciel open-source, libre et gratuit utilisant la licence permissive MIT. En août 2022, jQuery était utilisé par 77 % des 10 millions de sites web les plus populaires. L'analyse du web indique qu'il s'agit de la bibliothèque JavaScript la plus largement déployée, avec une marge importante, puisqu'elle est au moins trois à quatre fois plus utilisée que n'importe quelle autre bibliothèque JavaScript.

La syntaxe de jQuery est conçue pour faciliter la navigation dans un document, la sélection d'éléments DOM, la création d'animations, la gestion d'événements et le développement d'applications Ajax. jQuery permet également aux développeurs de créer des plug-ins au-dessus de la bibliothèque JavaScript. Cela permet aux développeurs de créer des abstractions pour l'interaction et l'animation de bas niveau, des effets avancés et des widgets de haut niveau pouvant être thématisés. L'approche modulaire de la bibliothèque jQuery permet de créer de puissantes pages web dynamiques et des applications web.

Pour jQuery 4.0.0 Beta, la plupart des changements sont ceux que l'équipe voulait faire depuis des années, mais qu'elle ne pouvait pas faire dans un patch ou une version mineure. Ils ont réduit le code hérité, supprimé certaines API précédemment obsolètes, supprimé certains paramètres internes aux fonctions publiques qui n'ont jamais été documentés, et abandonné la prise en charge de certains comportements "magiques" qui étaient trop compliqués. Voici quelques points forts de jQuery 4.0.0 beta.


Adieu IE<11

jQuery 4.0 abandonne la prise en charge d'Internet Explorer (IE) 10 et des versions antérieures. Certains se demandent peut-être pourquoi ils n'ont pas supprimé la prise en charge d'IE 11. Ils prévoient de supprimer le support par étapes, et la prochaine étape aura lieu dans jQuery 5.0. Pour l'instant, ils commençent par supprimer le code prenant spécifiquement en charge les versions d'IE antérieures à 11, ce qui donne une réduction de taille de -867 octets gzippés en un seul PR !

Ils ont également supprimé la prise en charge d'autres navigateurs très anciens, notamment Edge Legacy, iOS <11, Firefox <65, et Android Browser. Aucun changement ne devrait être nécessaire de côté utilisateur. Si on a besoin de supporter l'un de ces navigateurs, il suffit rester simplement avec jQuery 3.x.

API obsolètes supprimées

Ces fonctions sont obsolètes depuis plusieurs versions. Il est temps de les supprimer maintenant que la mise à jour a atteint une version majeure. Ces fonctions ont toujours été destinées à être internes ou ont maintenant des équivalents natifs dans tous les navigateurs supportés. Les fonctions supprimées sont les suivantes :

  • jQuery.cssNumber
  • jQuery.cssProps
  • jQuery.isArray
  • jQuery.parseJSON
  • jQuery.nodeName
  • jQuery.isFunction
  • jQuery.isWindow
  • jQuery.camelCase
  • jQuery.type
  • jQuery.now
  • jQuery.isNumeric
  • jQuery.trim
  • jQuery.fx.interval


push, sort, et splice supprimé

Le prototype jQuery comporte depuis longtemps des méthodes Array qui ne se comportent pas comme les autres méthodes jQuery et qui ont toujours été destinées à un usage interne uniquement. Ces méthodes sont push, sort et splice. L'équipe a transféré l'utilisation de ces méthodes vers les fonctions Array au lieu du prototype jQuery. Par exemple, $elems.push( elem ) est devenu [].push.call( $elems, elem ). Il est mentionné ici au cas où il y aurait des plugins qui se seraient appuyés sur ces méthodes.

Ordre des événements focusin et focusout

Pendant longtemps, les navigateurs n'étaient pas d'accord sur l'ordre des événements de mise au point et de flou, qui comprennent focusin, focusout, focus, and blur. Enfin, les dernières versions de tous les navigateurs pris en charge par jQuery 4.0 ont convergé vers un ordre commun des événements. Malheureusement, il diffère de l'ordre cohérent que jQuery avait choisi il y a plusieurs années, ce qui en fait un changement radical. Au moins, tout le monde est sur la même longueur d'onde maintenant !

Dans les versions précédentes, l'ordre de jQuery pour les quatre événements était le suivant :

  1. focusout
  2. blur
  3. focusin
  4. focus

À partir de la version 4.0 de jQuery, le comportement natif n'est plus. Cela signifie que tous les navigateurs, à l'exception d'IE, suivront la spécification actuelle du W3C, à savoir :

  1. blur
  2. focusout
  3. focus
  4. focusin

Pour les curieux, la spécification du W3C définissait auparavant un ordre différent :

  1. focusout
  2. focusin
  3. focusin
  4. blur

Mais peu de gens ont pensé que c'était intuitif et la spécification a été modifiée en 2023 pour correspondre à ce que les navigateurs avaient déjà mis en œuvre. Ironiquement, le seul navigateur à avoir suivi l'ancienne spécification est Internet Explorer.

Prise en charge de FormData

jQuery.ajax a ajouté la prise en charge des données binaires, y compris FormData. Auparavant, les données binaires n'étaient pas un type de données connu et étaient converties en chaînes de caractères. Ce comportement pouvait être désactivé en désactivant la conversion des données et en traitant les données manuellement, mais ils ont décidé de le faire fonctionner automatiquement. Il s'agit techniquement d'une rupture, mais le comportement devrait être plus proche de celui attendu.

Suppression de la promotion automatique de JSONP

Auparavant, jQuery.ajax avec dataType : "json" avec un callback fourni était automatiquement converti en une requête JSONP. Aujourd'hui, la manière préférée d'interagir avec un backend inter-domaine est avec CORS, qui fonctionne dans tous les navigateurs supportés par jQuery 4.0. Cela devrait permettre d'éviter des comportements inattendus dans le cas où un développeur ne sait pas qu'un code peut être exécuté à partir d'un domaine distant avec JSONP.

La source de jQuery migre vers les modules ES

Ce fut un jour spécial lorsque la source de jQuery sur la branche main a été migrée d'AMD vers des modules ES. Les sources de jQuery ont toujours été publiées avec les versions de jQuery sur npm et GitHub, mais ne pouvaient pas être importées directement en tant que modules sans RequireJS, qui était l'outil de construction de jQuery de prédilection. Depuis, ils sont passés à Rollup pour l'empaquetage de jQuery. L'équipe éffectue également des tests sur les modules ES avant de les empaqueter.

Types de confiance et CSP

jQuery 4.0 ajoute la prise en charge des Types de confiance (Trusted Types), garantissant que le HTML enveloppé dans TrustedHTML peut être utilisé comme entrée dans les méthodes de manipulation de jQuery d'une manière qui n'enfreint pas la directive Content Security Policy require-trusted-types-for.

Par ailleurs, alors que certaines requêtes AJAX utilisaient déjà des balises <script> pour maintenir des attributs tels que crossdomain, ils ont depuis changé la plupart des requêtes de script asynchrones pour utiliser <script> afin d'éviter toute erreur CSP causée par l'utilisation de scripts en ligne. Il existe encore quelques cas où XHR est utilisé pour les requêtes de script asynchrones, comme lorsque l'option "headers" est passée (utilisez scriptAttrs à la place !), mais on utilise maintenant une balise <script> chaque fois que cela est possible.


Mise à jour

L'équipe de jQuery ne prévoit pas de problèmes de compatibilité lors de la mise à jour à partir d'une version jQuery 3.0+. Si vous n'avez pas encore mis à jour vers jQuery 3.0, consultez le Guide de mise à jour 3.5 et le Guide de mise à jour 3.0.

Le plugin jQuery Migrate vous aidera à identifier les problèmes de compatibilité dans votre code. N'hésitez pas à tester cette version bêta et à faire part des problèmes que vous rencontrez.

Si vous ne pouvez pas encore passer à la version 3.5+, Daniel Ruf a gentiment fourni des correctifs pour les versions précédentes de jQuery.

Mise à jour de slim build

Le slim build est devenu encore plus petit dans jQuery 4.0.0 avec la suppression des Deferreds et des Callbacks (maintenant moins de 20k octets gzippés !). Les Deferreds ont longtemps supporté le standard Promises A+, donc les Promises natives peuvent être utilisées à la place dans la plupart des cas et elles sont disponibles dans tous les navigateurs supportés par jQuery à l'exception d'IE11. Les Deferreds ont quelques fonctionnalités supplémentaires que les Promises natives ne supportent pas, mais la plupart de leur utilisation peut être migrée vers les méthodes Promise. Si vous avez besoin de supporter IE11, il est préférable d'utiliser la version principale ou d'ajouter un polyfill pour les promesses natives.

Téléchargement

Vous pouvez obtenir les fichiers à partir du CDN de jQuery, ou les lier directement :

https://code.jquery.com/jquery-4.0.0-beta.js

https://code.jquery.com/jquery-4.0.0-beta.min.js

Vous pouvez également télécharger cette version depuis npm :

npm install jquery@4.0.0-beta

Slim build

Parfois, vous n'avez pas besoin d'ajax, ou vous préférez utiliser l'une des nombreuses bibliothèques autonomes qui se concentrent sur les requêtes ajax. Et il est souvent plus simple d'utiliser une combinaison de CSS et de manipulation de classes pour les animations web. Enfin, tous les navigateurs supportés par jQuery (à l'exception d'IE11) prennent désormais en charge les promesses natives, de sorte que les Deferreds et les Callbacks ne sont plus nécessaires dans la plupart des cas. En plus de la version normale de jQuery qui inclut tout, une version "slim" qui exclut ces modules a été publiée. La taille de jQuery est très rarement un problème de performance de charge de nos jours, mais la version "slim" est environ 8k octets gzippés plus petite que la version normale. Ces fichiers sont également disponibles dans le paquet npm et sur le CDN :

https://code.jquery.com/jquery-4.0.0-beta.slim.js

https://code.jquery.com/jquery-4.0.0...ta.slim.min.js

Ces mises à jour sont déjà disponibles en tant que versions actuelles sur npm et Bower. Des informations sur toutes les façons d'obtenir jQuery sont disponibles à l'adresse https://jquery.com/download/. Les CDN publics reçoivent leurs copies aujourd'hui, veuillez leur laisser quelques jours pour poster les fichiers. Si vous souhaitez démarrer rapidement, utilisez les fichiers sur le CDN de l'équipejQuery jusqu'à ce qu'ils aient une chance de se mettre à jour.

Nous publierons un guide de mise à jour complet avant la version finale, afin de présenter le code supprimé et la manière de migrer. Le plugin jQuery Migrate sera également prêt à vous aider. Pour l'instant, nous vous invitons à tester la version bêta et à nous faire savoir si vous rencontrez des problèmes.
Source : Annonce de jQuery v4.0 Beta

Et vous ?

Quel est votre avis sur cette mise à jour ?

Voir aussi :

L'impact de la suppression de jQuery sur les performances Web : l'expérience de GOV.UK, site Web d'information du secteur public du Royaume-Uni

jQuery 3.6.0 est disponible, mais la bibliothèque JavaScript est-elle encore beaucoup utilisée en 2021 ?

État de JavaScript 2022 : React reste le framework front-end dominant mais est en perte de vitesse côté satisfaction, JQuery est la troisième bibliothèque la plus utilisée

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Padget
Membre régulier https://www.developpez.com
Le 07/02/2024 à 19:01
Je trouve que c'est une bonne idée de conserver et de développer jquery. Cela permet d'entretenir un patrimoine logiciel, jquery étant un pionnier sur les technologies web. Et de plus on conserve un état de l'art en le maintenant.
3  0 
Avatar de dragonofmercy
Membre régulier https://www.developpez.com
Le 08/02/2024 à 7:12
Citation Envoyé par archqt Voir le message
Je ne suis pas expert web, mais il me semblait que javascript+html5+cc contenait tous les éléments de jquery avec un code aussi court, mais en plus rapide car directement dans le langage.
En théorie, cela peut sembler vrai, mais dans la pratique, ce n'est pas toujours le cas. Par exemple, prenons le cas de Bootstrap, qui a abandonné jQuery pour le natif. Le résultat est que leur bibliothèque JavaScript est désormais deux fois plus volumineuse que l'ancienne qui contenait à la fois leur propre code et jQuery.

De plus, il est important de noter qu'il existe encore de nombreuses bibliothèques qui utilisent jQuery. Par conséquent, tôt ou tard, vous devrez probablement l'ajouter à votre site si vous utilisez ces bibliothèques.

En ce qui concerne les performances, dans la plupart des cas (environ 98%), les différences ne sont pas perceptibles. Cependant, il est probable que vous remarquerez des différences dans les applications qui utilisent de très grandes bibliothèques JavaScript.
2  0 
Avatar de Leruas
Membre éclairé https://www.developpez.com
Le 07/02/2024 à 18:50
Même IE 11, quel intérêt de le supporter encore alors qu'il est abandonné depuis 3 ans ?

Ces fonctions ont toujours été destinées à être internes ou ont maintenant des équivalents natifs dans tous les navigateurs supportés
Oui c'est le cas de presque tout ce que fait jQuery, donc quel intérêt de supprimer certaines API et pas tout ?
0  0 
Avatar de irrmichael
Membre du Club https://www.developpez.com
Le 08/02/2024 à 10:12
Je suis content que jquery soit mis à jour. Je ne vois pas encore comment je pourrais m'en passer dans mes projets web futurs.
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 08/02/2024 à 0:17
Je ne suis pas expert web, mais il me semblait que javascript+html5+cc contenait tous les éléments de jquery avec un code aussi court, mais en plus rapide car directement dans le langage.
0  1