Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

jQuery annonce la troisième génération

Le , par danielhagnoul, Rédacteur
jQuery annonce la troisième génération
Nouvelle API non rétrocompatible

En 8 ans, jQuery a beaucoup évolué pour adopter les nouveautés tout en maintenant, autant que possible, la compatibilité avec le passé.

Actuellement, il existe deux branches distinctes utilisant la même API :

  • La branche 1, version actuelle 1.11.1, compatible avec les navigateurs obsolètes (IE8 et moins).
  • La branche 2, version actuelle 2.1.1, non compatible avec les navigateurs obsolètes.


Il y aura toujours deux versions dans la branche 3, mais la nouvelle API comportera des changements non rétrocompatibles.

  • jquery-3.0.0.min.js (min est l'abréviation de minified : compressé) sera compatible uniquement avec les navigateurs existants (the evergreen browsers) au moment de sa sortie. Cette version est utilisable dans un site Web qui ne fonctionnera que sur les dernières versions (IE 11 et plus) des navigateurs actuels ou pour une application HTML (par exemple, PhoneGap ou Cordova).
  • jquery-compat-3.0.0.min.js (compat est l'abréviation de compatible) sera compatible avec les navigateurs obsolètes (IE 10 et moins) au détriment d'une taille de fichier plus importante et de performances potentiellement plus faibles. Nous recommandons l'usage de cette version pour la plupart des sites Web, car il offrira la meilleure compatibilité pour les visiteurs de votre site web.


La migration ne posera guère de problèmes pour du code jQuery n'utilisant pas les méthodes obsolètes. Une nouvelle version du plugin jQuery Migrate vous aidera à détecter et à corriger les portions de code non compatible avec la nouvelle API.

Nous aurons plus de détails, notamment sur les modifications de l'API et les navigateurs pris en charge, dans les prochaines annonces.

Source


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Bovino Bovino - Rédacteur http://www.developpez.com
le 31/10/2014 à 9:51
L'initiative me semble assez bizarre car elle semble sous entendre que ce sont les développeurs qui décident quels navigateurs seront utilisés pour visiter leur(s) site(s), ce qui est assez contraire à la philosophie habituelle rencontrée dans le développement Web... Du coup, je me demande à qui peut bien s'adresser les version "evergreen" ?
La bonne idée aurait été, je pense, de créer un loader jQuery qui à partir de feature detection permette de charger la bonne version de jQuery pour l'utilisateur en cours.
Avatar de danielhagnoul danielhagnoul - Rédacteur http://www.developpez.com
le 31/10/2014 à 10:27
Sur ce point, je trouve que leur annonce est loin d'être un modèle de précision. J'ai l'impression que l'équipe de développement n'a pas encore fixé définitivement les limites et que le niveau de compatibilité dépendra des travaux en cours.

The main jQuery package remains small and tight by supporting the evergreen browsers (the current and previous versions of a specific browser) that are common at the time of its release.

Il est possible que la version 12 d'IE sorte avant la version 3 de jQuery (aucune date n'est annoncée).

Tenant compte de ce qui précède et du fait qu'il est recommandé d'utiliser la version compatible, j'ai choisi de mettre IE10 dans les navigateurs obsolètes.

Les prochaines annonces préciseront certainement ce point.
Avatar de jv2759 jv2759 - Membre régulier http://www.developpez.com
le 31/10/2014 à 10:52
L'initiative me semble assez bizarre car elle semble sous entendre que ce sont les développeurs qui décident quels navigateurs seront utilisés pour visiter leur(s) site(s)

Oui, c'est bien le but, tout comme la version actuelle. On favorise la performance, car on connaît notre cible par exemple une grosse application sur mobile, ou alors notre cible et plus large et l'on joue la sécurité et donc la compatibilité et là même la personne sous XP ie7 seras toucher.

La bonne idée aurait été, je pense, de créer un loader jQuery qui à partir de feature detection permette de charger la bonne version de jQuery pour l'utilisateur en cours.

Non ce serait contre-productif, car le but et d'accélérer quand on sait que l'on peut, avec une telle solution on ralentirait tout le monde et en particulier les mobiles chez qui la requête coute cher.
Avatar de abriotde abriotde - Membre éclairé http://www.developpez.com
le 31/10/2014 à 13:34
développeurs qui décident quels navigateurs seront utilisés pour visiter leur(s) site(s)

Oui les développeurs savent quel sont leurs utilisateurs cibles.
- Soit c'est un site grand public accessible depuis internet et l'on peut alors demander aux utilisateurs d'installer la dernière version de navigateurs.
- Soit c'est un site pour un réseau privé sur lequel le parc de PC est uniforme on sait alors quels sont les navigateurs utilisés.

Le tout en sachant que
- Dire que "jquery 3 ne sera pas 100% incompatible avec IE9" ne veut pas dire qu'il est "0% compatible", seulement jquery ne s'y engage pas. Charge au développeur d'étudier la navigabilité de son site sous IE9 ou IE8 s'il estime qu'il reste des utilisateurs Windows XP ne pouvant pas mettre IE10 sur leur PC.
- Si l'on compte le temps de décision, de formation et de développement ou adaptation d'une application pour jquery 3, on sais bien qu'alors IE8 sera vraiment un vieux navigateurs. Dans 2-3 ans combien de PC seront encore sous Windows XP?
Avatar de youtpout978 youtpout978 - Membre expert http://www.developpez.com
le 31/10/2014 à 14:13
Citation Envoyé par danielhagnoul  Voir le message
  • jquery-3.0.0.min.js (min est l'abréviation de minified : compressé) sera compatible uniquement avec les navigateurs existants (the evergreen browsers) au moment de sa sortie. Cette version est utilisable dans un site Web qui ne fonctionnera que sur les dernières versions (IE 11 et plus) des navigateurs actuels ou pour une application HTML (par exemple, PhoneGap ou Cordoue).

Je pense que c'est cordova et pas cordoue, j'ai voulu signalé mais je ne sais pas si cette fonctionnalité marche quand je valide la popup devient blanche et ne réagit plus.
Avatar de Shuty Shuty - Membre éprouvé http://www.developpez.com
le 31/10/2014 à 14:50
C'est bien beau, mais à crois les lires et mes statistiques analytics... Ca va faire beaucoup de mécontents...
Avatar de azias azias - Membre éclairé http://www.developpez.com
le 31/10/2014 à 16:55
Citation Envoyé par Bovino  Voir le message
L'initiative me semble assez bizarre car elle semble sous entendre que ce sont les développeurs qui décident quels navigateurs seront utilisés pour visiter leur(s) site(s), ce qui est assez contraire à la philosophie habituelle rencontrée dans le développement Web... Du coup, je me demande à qui peut bien s'adresser les version "evergreen" ?

C'est le cas de plus en plus souvent avec les "applications html5", html et javascript ne sont plus utilisé seulement sur des pages web mais aussi dans des applications html que le développeur wrap dans un navigateur bien précis, ou dans des extensions (les applications chrome par exemple) ou tout simplement aujourd'hui la plupart des framework de développement d'interface intègre des navigateur. Le développeur peut alors avoir s'il est dans un cas pris en charge par jquery3 ou non et obtenir ainsi de meilleure performance.

Par ailleurs, au niveau des sites web eux même, il va bien falloir un jour arrêter de vouloir à tout prix supporter les versions obsolètes de navigateur. Pour l'anecdote, même outlook.com de Microsoft ne supporte pas complètement les vieilles versions d'IE (je ne sais pas si ça a été corrigé depuis mais il y a quelques mois sous XP on ne pouvait pas ajouter de pièces jointes aux messages avec IE).
Avatar de danielhagnoul danielhagnoul - Rédacteur http://www.developpez.com
le 31/10/2014 à 19:30
Citation Envoyé par youtpout978  Voir le message
Je pense que c'est cordova et pas cordoue, j'ai voulu signalé mais je ne sais pas si cette fonctionnalité marche quand je valide la popup devient blanche et ne réagit plus.

Corrigé, merci.
Avatar de danielhagnoul danielhagnoul - Rédacteur http://www.developpez.com
le 31/10/2014 à 19:39
Citation Envoyé par olreak  Voir le message
[...] Par ailleurs, au niveau des sites web eux même, il va bien falloir un jour arrêter de vouloir à tout prix supporter les versions obsolètes de navigateur. [...]

Même Microsoft admet qu'il est urgent de tuer le plus vite possible les versions obsolètes. La seule manière fiable, c'est la mise à jour automatique des navigateurs plusieurs fois par an.
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur http://www.developpez.com
le 01/11/2014 à 14:34
Citation Envoyé par jv2759  Voir le message
Non ce serait contre-productif, car le but et d'accélérer quand on sait que l'on peut, avec une telle solution on ralentirait tout le monde et en particulier les mobiles chez qui la requête coute cher.

La quantité de code supplémentaire est négligeable, et ils peuvent parfaitement faire le test de détection dans un script en inline pour éviter une requête supplémentaire. Au passage à jQuery 2.0, puisque le principal changement était le support d'IE, l'équipe jQuery avait proposé d'utiliser les commentaires conditionnels d'IE :

Code : Sélectionner tout
1
2
3
4
5
6
<!--[if lt IE 9]> 
    <script src="jquery-1.9.0.js"></script> 
<![endif]--> 
<!--[if gte IE 9]><!--> 
    <script src="jquery-2.0.0.js"></script> 
<!--[endif]-->
Maintenant que ce hack n'existe plus, j'espère qu'ils vont travailler à une autre solution de chargement conditionnel (et un peu plus poussée que celle-ci)

Un exemple de snippet de chargement conditionnel (qu'il faudra revoir bien entendu quand on en saura plus sur les différences de support) :
Code html : Sélectionner tout
1
2
3
4
5
6
7
8
9
 <script>var COMPAT_MODE = !(function(){ 
        try { 
                return Array.prototype.indexOf && Array.prototype.forEach && String.prototype.indexOf && String.prototype.trim && Function.prototype.bind && Object.keys && JSON.stringify && localStorage && FormData && FileReader; 
        } catch(e){} 
 })(); 
document.write("<script src='lib/jquery"+(COMPAT_MODE?"-compat":"")+"-3.0.0.min.js'></script>"); 
</script> 
... 
</head>
Avatar de steel-finger steel-finger - Membre habitué http://www.developpez.com
le 02/11/2014 à 0:59
Citation Envoyé par danielhagnoul  Voir le message
Même Microsoft admet qu'il est urgent de tuer le plus vite possible les versions obsolètes. La seule manière fiable, c'est la mise à jour automatique des navigateurs plusieurs fois par an.

Je suis tout a fait d'accord, car nous développeurs on encourage l'utilisation de version obsolète et non sécurisé, il est temps que tous ça change. il y a eu du retard à rattrapé pour quelque navigateur, maintenant qu'il sont dans le droit chemin pour tué les versions obsolète on ne peut que les suivres.
Offres d'emploi IT
Lead dev web - h/f
UpSourcing - Ile de France - Paris (75000)
Développeur web h/f
LWM - Ile de France - Paris (75000)
WEBMASTER DEVELOPPEUR H/F
GROUPE NASSE DEMECO - Centre - SAINT JEAN DE LA RUELLE

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Développement Web : Xavier Lecomte -