Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/08/2011, 22h44   #1
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
Par défaut "$ is not defined" de manière aléatoire

Bonjour,

Je me retrouve avec un comportement inattendu à la suite du déploiement d'un site sur environnement de PROD.
La nouvelle version utilisé maintenant JQuery, et ne posait aucun soucis "en local".
Seulement voilà : je me retrouve avec des "$ is not defined" de manière complétement aléatoire : hé oui, parfois cela passe.

Auriez-vous des suggestions ?
J'ai écarté pas mal de possibilités du fait que cela fonctionne 3 fois sur 4 ...
Cela donne l'impression que sur certains chargements les js sont chargés avant jquery.

A noter que j'ai également du coup dans certains cas carrément des pages blanches ... (avec appuis successifs sur F5 pour espérer retrouver la page désirée)

Avez-vous déjà rencontré ce type de comportement ?

Merci d'avance,

Gmartintin
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 08h12   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Avez-vous déjà rencontré ce type de comportement ?
Oui. En général, c'est lié au code...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 08h37   #3
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 265
Points : 7 265
Bonjour,

Citation:
Envoyé par gmartintin Voir le message
J'ai écarté pas mal de possibilités du fait que cela fonctionne 3 fois sur 4 ...
Cela donne l'impression que sur certains chargements les js sont chargés avant jquery.
Une fois que tu as pu charger jQuery sur une page, le navigateur ne le chargera plus mais utilise ce de la cache.
Citation:
Envoyé par gmartintin Voir le message
A noter que j'ai également du coup dans certains cas carrément des pages blanches ... (avec appuis successifs sur F5 pour espérer retrouver la page désirée)

Avez-vous déjà rencontré ce type de comportement ?
Oui, quand j'étais au fond coin du monde et j'ai utilisé un smartphone pourri made in China comme modem .
Sinon, fait voir ton code comme disait Bovino.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 08h57   #4
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
Ok, je vous mets ça ce soir, dès que je peux avoir accès au serveur (j'ai été obligé de faire un rollback désespéré hier)

Mais quel est le code le plus utile dans ce cas précis ? un lien direct vers la page ? Ou le code copié dans un post (ce qui sera, je l'avoue, plus simple pour moi, car je peux récupérer ça sur le serveur local sans redéployer) ?
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 13h59   #5
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
Je m'excuse pour ne pas avoir attaché le code source dès l'ouverture du sujet, j'éai été à l'encontre de ce que je prone à la longueur de journée, mais après plusieurs heures à m'énerver là dessus, je pense que je n'étais plus très lucide ...

J'ai eu peur que tout coller sauvagement dans le texte ne nuise à la lisibilité, vous trouverez donc en pièce jointe :
- le fichier source de ma page
- les 3 fichiers js utilisés.

Ce que j'ai pu constater : environ une fois sur 4, j'ai droit à une erreur de type "$ is not defined", que j'ai pu détecté dans le gestionnaire d'erreur Firefox. Tout le javascript tombe (=> menu, slideshow et shoutbox).
Par fois même, j'ai carrément une page blanche (sans savoir par contre si cela peut avoir un lien).
A noter :
- à priori, il y a un problème avec le menu, pas visible sous IE (il faut que je me penche sur la CSS), mais je suis parti sur le principe que cela n'était pas forcément lié
- jamais eu de soucis sur mon serveur local.

J'avoue qu'une bonne partie du code n'est pas de moi, mais a été copié sur d'autres sites.

Si jamais cela vous inspire, je suis preneur, je sèche un peu pour le moment.

Bien à vous,

Gmartintin
Fichiers attachés
Type de fichier : txt Source-index.txt (9,5 Ko, 7 affichages)
Type de fichier : txt shootbox-js.txt (1,9 Ko, 3 affichages)
Type de fichier : txt Slideshow-js.txt (118 octets, 3 affichages)
Type de fichier : txt Menu.txt (2,5 Ko, 1 affichages)
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 08h41   #6
Membre confirmé
 
Inscription : avril 2006
Messages : 507
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 507
Points : 239
Points : 239
Bonjour,

Il me semble que tu utilise des bibliothèques qui utilisent également $ (slideshow + mootools)

J'ai pas eu le temps de vérifier si tu utilises mootools ou une autre biblio...

Si c'est le cas, le $ n'est pas refusé de manière aléatoire mais quand le navigateur fait appel à jQuery en même temps qu'une autre bibliothèque "antagoniste"

Dans ce cas il te faut utiliser

et remplacer tous les $ utilisés par les fonctions jQuery par : "jQuery"

regardes la doc de jQuery.noConflict sur le sujet.

Bonne journée
Alexdezark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 09h05   #7
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
Merci pour ta réponse, je vais essayer cette alternative. Je vais me documenter sur le noconflict.

Toutefois, je n'utilise que du jquery ou du jquery-ui (cf source) ... sauf erreur de ma part ?
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 09h22   #8
Membre confirmé
 
Inscription : avril 2006
Messages : 507
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 507
Points : 239
Points : 239
donc, si tu n'utilises pas d'autres biblios cela ne vient pas de ça...

pourquoi ceci dans "source-index.txt" :

Code :
<!--<script type='text/javascript' src='./javascript/jquery.js'></script>-->
parce que si tu testes avec ça, c'est sûr que : $ is undefined"

Une autre chose peut considérablement "embrouiller" le navigateur, c'est si l'on charge plusieurs fois la biblio jQuery dans la même page (templates, pages imbriquées, etc..)
Alexdezark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h17   #9
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
J'ai mis cette ligne en commentaire parce que sur la ligne du dessus je charge la version minified :

Code :
<script type='text/javascript' src='./javascript/jquery.min.js'></script>
=> première ligne commentée pour éviter ces problèmes de "multi chargement".

Ce qui est pertubant, c'est que cela n'est pas systématique, et que je n'ai aucun soucis en local
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h51   #10
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
utilise firebug et regarde dans quel ordre les éléments sont chargés. J'arrive pas à ouvrir tes sources, mais on dirait un problème de synchronisme : $ est appelé avant que jquery ait fini d'être chargé.
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 19h45   #11
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
J'ai réussi à faire cohabiter les deux version du site sur le même serveur, je vais pouvoir faire des tests en condition de PROD.
Je vous tiens au courant.
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 20h12   #12
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
J'obtiens les résultats suivants sur le chargement des JS sur une paque qui fonctionne

Je suis surpris par la durée d'attente.
De la même manière, normalement tout devrait être en cache non ? Je vois pourtant un délai de connexion ...

gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h04   #13
Membre confirmé
 
Inscription : avril 2006
Messages : 507
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 507
Points : 239
Points : 239
Le plus pratique serait quand même que nous puissions accéder à la version de test du site...

une petite url peut-être ?

Alexdezark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 21h32   #14
Invité régulier
 
Homme
Chef de projet en SSII
Inscription : mars 2002
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 23
Points : 6
Points : 6
Pas trop-trop le droit, je ne suis pas propriétaire du site, pas autorisé à diffusé l'url

A noter que depuis que je l'ai re-uploader à un autre sur le serveur, je n'arrive plus à le faire planter ...
gmartintin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web