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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Pourquoi ça marche encore quand je supprime le code?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Pourquoi ça marche encore quand je supprime le code?
    Bonjour tout le monde.
    Alors là je ne sais pas du tout comment présenter le problème parce que normalement quand il y a un problème c'est que ça ne marche pas mais là ça marche trop.
    J'ai un dossier "javascript" et un dossier "balises" distincts. Dans ces dossiers il y à un tas de fichiers js. Et dans un autre fichier: "index.php" qui ce trouve au coté de "javascript" et "balises" j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="javascript/body.js"></script>
    Forcement j'utilise body plus loin dans le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>$('body').html(Body.create());</script>
    Là dedans tout fonctionne tellement bien que si je supprime de code de "body.js" ça fonctionne toujours.
    Ce qui veux dire que mon algo créé un objet de Body sans que la classe n'existe.
    J'ai vérifier que je n'avais pas fait un doublon du style, un vieux ctrl-c ctrl-v renommé que j'aurais oublier.
    Mais la classe Body ne se trouve nul part ailleurs.
    Encore plus bizarre, si je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="javascript/balises/body.js"></script>
    Ca marche encore!
    Mais "balises" ne se trouve pas du tout dans "javascript".
    Par contre si je fait;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="balises/javascript/body.js"></script>
    Là ça ne marche plus.
    Pourquoi????
    Ca n'a aucun sens!
    Je pourrais vous mettre le code en entier mais vraiment j'en vois pas du tout l’intérêt, c'est très très long.
    En plus je n'ai toucher à rien d'autre que ce que j'ai présenter depuis la dernière fois que ça fonctionnait correctement.
    En gros, j'ai modifier l'emplacement des fichiers et des dossiers et forcément les déclarations aussi.
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Salut,
    pour voir quel fichier est responsable de la création de Body, tu peux utiliser ce code directement dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (function () {
      debugger;
      Body.create();
    })()
    Ça va lancer automatiquement le débogueur, et tu pourras faire une exécution pas-à-pas avec la touche F11. À un moment tu pourras voir la définition de la fonction Body.create(), et donc le fichier dans lequel elle se trouve.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Merci pour la technique.
    Je connaissais pas.
    Visiblement, il pointe vers le bon fichier.
    Le fichier vide...

    Si je change le nom de la classe, ca marche toujours.
    Si je supprime le fichier ca marche plus.

  4. #4
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Je soupçonne un problème de cache. Tu développes avec un serveur local ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Bravo et merci beaucoup,
    j'aurai jamais trouvé tout seul.

    Après quelque recherches, j'ai fini par faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="javascript/body.js?dev='23'"></script>
    A la place du '23' vaux mieux mettre un nombre aléatoire.
    J'ai désactiver le cache de mon navigateur aussi...

    Voila, du coup merci beaucoup, c'était super.

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Hmm, ce n’est qu’une solution provisoire, car elle désactive totalement le cache. (Et elle rajoute un paramètre GET inutile.) Il y a moyen de bien paramétrer ton serveur pour bénéficier de la mise en cache, tout en recevant une version à jour du script quand celui-ci a été modifié.

    Il faut trouver pourquoi ton serveur t’a envoyé une version pas à jour du script. Tu peux vérifier les en-têtes HTTP avec lesquels les fichiers de script sont servis, en ayant l’onglet réseau de la console (network si ta console est en anglais) ouvert durant le chargement de la page. Aide-toi du filtre « scripts » si besoin.
    Quand tu vois la ligne qui correspond à ton script, clique dessus puis clique sur « en-têtes » (headers). Vérifie notamment les en-têtes Cache-Control, Expires et Last-Modified (Pragma éventuellement mais c’est un vieux truc).

    A priori, ton serveur envoie des dates d’expiration trop longues.

    Avec Apache, il y a différents endroits où tu peux placer des directives de cache :
    • dans le httpd.conf
    • si tu utilises des hôtes virtuels (vhosts), dans le fichier .conf du vhost
    • dans un .htaccess


    Je t’invite à consulter cette page, vieille mais toujours d’actualité, pour savoir comment ajouter des directives de cache à ton serveur.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/01/2006, 20h29
  2. pourquoi l'appli quitte quand elle est vide
    Par firejocker dans le forum MFC
    Réponses: 1
    Dernier message: 10/11/2005, 14h20
  3. Comprends pas pourquoi ca marche pas
    Par cellimo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/11/2005, 22h10
  4. [OLE DB] pourquoi ca marche pas ??
    Par aurel89 dans le forum MFC
    Réponses: 3
    Dernier message: 09/09/2005, 17h23
  5. Accept : pourquoi ça marche pas ?
    Par doudblast dans le forum Linux
    Réponses: 16
    Dernier message: 08/03/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo