jQuery 1.9.1 est disponible

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Le , par danielhagnoul, Rédacteur
jQuery 1.9.1 est disponible
Correction de bogues

N'oubliez pas de lire le guide de mise à niveau et d'utiliser le plugin jQuery Migrate pendant la phase d'adaptation de vos anciens codes. Le plugin vous signalera tous les problèmes dans la console de votre navigateur.

Code :
1
2
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script
Les nouveaux fichiers ont été envoyés aux serveurs de code de Google et de Microsoft, ils devraient être disponibles.

Liste des modifications

Source

Référence

Avalanche de nouveautés jQuery


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


 Poster une réponse

Avatar de fredoche fredoche
http://www.developpez.com
Membre Expert
le 20/02/2013 17:03
Bonjour

Merci beaucoup Daniel pour le lien vers JQuery Migrate, ça va m'être fort utile
Stop hitting yourself! We created this plugin to make things easy on you



Pourrais je poser une question dans ce post ? et si je suis HS, j'imagine que tu n'hésiteras pas à me virer.

je ne suis pas sur de bien comprendre ce qu'il est signifié sous ce chapitre :
http://jquery.com/upgrade-guide/1.9/...e-html-content

Loading and running scripts inside HTML content

Prior to 1.9, any HTML-accepting method (e.g., $(), .append(), or .wrap()) executed any scripts in the HTML and removed them from the document to prevent them from being executed again. This still broke in situations where a script might be removed and reinserted into the document using methods such as .wrap(). As of 1.9, scripts inserted into a document are executed, but left in the document and tagged as already executed so they won't be executed again even if they are removed and reinserted.

Despite this change, it is very poor practice to mix executable JavaScript into HTML markup; it has design, security, reliability, and performance implications. For example, external script tags included in HTML are fetched synchronously and then evaluated, which can take a significant amount of time. There is no interface to notify when or whether those scripts load, or to take corrective actions when there is an error.

Code that attempts to load a script by cloning an existing script tag and injecting that clone into the document will no longer work, because the cloned script tag has already been marked as executed. To load a new script, use jQuery.getScript() instead.

Quelqu'un saurait il en dire plus sur la partie en gras ?
Doit on comprendre que l'on charge de nouveaux scripts ou instructions javascript dans le contenu HTML d'une page déja formée, c'est plutôt une très mauvaise pratique ?

Est ce que cela concerne des méthodes type load() que j'utilise pour certaines parties de mes apps ? et qui chargent à la fois du html et du javascript qui s'exécute sans que je ne me sois jusqu'alors posé la question.
Cela dit cela pourrait peut-être expliquer certains soucis de toggle() que je rencontre.
Avatar de danielhagnoul danielhagnoul
http://www.developpez.com
Rédacteur
le 20/02/2013 22:17
Bonsoir

Vous devez retenir qu'il ne faut jamais mélanger vos scripts et votre HTML.

Qu'un script doit se trouver dans un fichier ".js" et qu'il se charge uniquement avec $.getScript() et jamais avec load().

Sur le forum, dans la FAQ et dans la plupart des tutoriels on trouve un seul fichier contenant HTML, CSS et JS par paresse et par facilité.

En production, comme le CSS, les scripts doivent toujours être dans des fichiers séparés et compressés (minified, abbréviation min).

Pour la compression (n'oubliez pas de garder une copie non compressée pour le développement), j'utilise régulièrement : http://closure-compiler.appspot.com/home (option "simple" pour jQuery).
Avatar de fredoche fredoche
http://www.developpez.com
Membre Expert
le 21/02/2013 16:16
Salut
merci
je me doutais un peu que c'est ce qu'il faut en comprendre

du coup je relisais la FAQ jquery
http://javascript.developpez.com/faq...oduction#Where
et (désolé si je suis lourd... hum ) ton exemple est bien un bon exemple de ce qu'il faut faire ?
Il n'y a pas d'importance majeure à cantonner les inclusions de scripts à la partie head d'un fichier HTML, ce qui m'arrangerait bien ?
Et cela va au delà du simple aspect ""maintenance du code" à lire les implications de l'upgrade guide

précision, je ne charge pas de script à proprement parler, je charge avec load() des htmls formés incluant des instructions de script.

Je vais changer mon approche, j'ai pu lire par ailleurs qu'à partir de jquery 2.0 cette façon de faire ne devrait plus fonctionner.
Avatar de ABCIWEB ABCIWEB
http://www.developpez.com
Expert Confirmé Sénior
le 25/03/2013 20:47
Salut,

Faites attention avec jquery-migrate.

Je viens de passer deux heures en me demandant pourquoi la console me renvoyait l'erreur :
Code :
1
2
NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMWindow.getComputedStyle] 
jquery-1.9.1.js (ligne 6898)
En cherchant un peu ce serait peut-être un bug spécifique sous Firefox, mais si j'utilise une lib c'est aussi pour ne pas avoir à me préoccuper de la compatibilité du code entre les différents navigateurs... Et là je ne savais même pas comment chercher dans mon code l'origine de ce pb, ni même s'il était judicieux de le faire.
Jusqu'à ce que je supprime la ligne qui inclue jquery-migrate et là par miracle tout est rentré dans l'ordre. J'ai mis deux heures avant d'avoir l'idée de supprimer jquery-migrate, évidemment puisque c'était sensé m'aider

Bon pour le reste ma migration vers 1.9.1 (depuis v1.8.2) se passe bien.

Evidemment n'oubliez pas d'utiliser conjointement la dernière version de jquery ui : la version 1.10.2 (sinon jquery 1.9 n'est pas compatible avec ui 1.9).
Avatar de danielhagnoul danielhagnoul
http://www.developpez.com
Rédacteur
le 25/03/2013 22:15
Bonsoir

Le plugin Migrate n'est pas exempt de bogues, la dernière version disponible : <script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>.

Source
Avatar de ABCIWEB ABCIWEB
http://www.developpez.com
Expert Confirmé Sénior
le 26/03/2013 2:06
Merci, mais la nouvelle version ne corrige pas le problème...

J'espère que je n'aurai pas de pb en ayant supprimé "jquery-migrate". J'ai vérifié la doc jquery et mes fonctionnalités dans "chrome" et "firefox" sont ok mais je n'ai pas les moyens de tester avec tous les navigateurs et j'ai plus de 100ko de code (une fois compressé) sans compter les lib externes...

Pour l'instant j'ai juste dû changer quelques ".attr" pour des".prop". et modifier un peu la lib "flot" qui utilisait "$.browser". Je croise les doigts pour que ça s'arrête là
Offres d'emploi IT
Support administration système et résaux h/f
CDD
SEPTEO - Languedoc Roussillon - Pérols (34470)
Parue le 14/11/2014
Développeur .net
CDI
HUMANLOG - Provence Alpes Côte d'Azur - Sophia Antipolis
Parue le 14/11/2014
DEVELOPPEUR EXPERIMENTE JAVA/J2EE CRM/BILLING/COMPTABILITE (H/F)
CDI
Proxiad - Ile de France - Arcueil (94) (94)
Parue le 01/11/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula