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 :

Interprétation javascript différente selon serveur


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut Interprétation javascript différente selon serveur
    Bonjour,
    J'ai un souci dont je ne comprends même pas qu'il puisse arriver :
    J'ai codé un petit jeu basé sur AJAX : un moteur php qui gère le jeu, et une interface Javascript qui interroge le serveur par un XHR et affiche l'état du jeu pour chaque joueur
    L'ensemble fonctionne très bien sur mon serveur de test en local (EasyPHP), mais quand j'upload le tout chez mon hébergeur (ovh Cloud), il advient un truc curieux :
    Tout fonctionne très bien SAUF que les cercles sont tracés beaucoup trop grands sur le Canvas principal en Javascript : on dirait que la fonction scale s'applique mal à ces cercles
    Pire encore, sous chrome les cercles sont vides, et sous Firefox ils sont pleins (alors qu'en local ils sont toujours vides et à la bonne taille) !
    Pourtant les images sont correctement tracées sur le même canvas et après la même fonction scale
    Je ne comprends pas comment un changement de serveur peut influer sur l'exécution du Javascript sur le client
    J'ai vérifié les en-têtes http : ce sont les mêmes
    Est-ce que quelqu'un a une idée de comment il est possible que le serveur puisse avoir un effet sur l'exécution du Javascript / Canvas ??

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Commence par regarder en console les retours de ton ajax afin de repérer éventuellement les différences ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut
    Le retour AJAX est le même (enfin, similaire, puisque les valeurs de retour sont différentes) ; c'est seulement une chaine de caractères (pas du xml) que je décode en javascript.
    Et de toutes façons, les dimensions des cercles sont des variables qui ne bougent pas. Dans le doute, j'ai quand même essayé de mettre des valeurs fixes, "en dur", et le problème reste le même.
    On dirait vraiment que la fonction d'échelle (scale de contexte2D de canvas) n'est pas traitée pareil quand le html (la page de base) est servi par un serveur ou l'autre, ce qui me parait impossible.
    D'ailleurs, au début du développement, je n'utilisais pas la fonction scale et je n'avais pas ces problèmes (mais je suis obligé de passer maintenant par cette fonction car les choses deviennent trop complexes à gérer par des formules).
    En plus, je pense que le problème vient bien d'un mauvais fonctionnement de la fonction scale, car ça pourrait déjà expliquer les cercles vides ou pleins, qui résulteraient d'une épaisseur de trait à une mauvaise échelle aussi.
    Même si, encore une fois, je ne comprends pas comment ça peut être causé par le serveur.
    A ce jour, j'ai triché en mettant l'image d'un rond, mais la solution ne me plait pas.
    Et puis j'aimerais bien comprends le problème, ne serait-ce que parce que ça cache peut-être un fonctionnement que je ne connais pas.
    Une autre idée ?

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    Pouvez-vous nous montrer un exemple en ligne pour voir ce comportement inattendu ainsi que le code utilisé....

  5. #5
    Membre averti Avatar de ViskashaEveillé
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2022
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2022
    Messages : 16
    Par défaut
    Bonjour,

    est-ce que vous utilisez un OS différent entre votre pc local (peut-être windows) et votre serveur ovh (linux?)

    Il arrive que vos fichiers de code puissent être interprétés différement quand vous changez d'OS (shebang, chemin, etc...)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut
    Le client est toujours le même, sur le même PC windows 10 ; en fait, la situation est toujours exactement la même, seul le serveur change
    J'ai mis tous ça en ligne sur www.challengear.com (il faut deux navigateurs différents pour les joueurs)
    En testant le jeu, vous constaterez que les "balles", quand on tire, sont énormes, alors qu'en local, les balles sont toutes petites
    Le code qui trace les cercles est le suivant (fichier www.challengear.com/jvs/7-tracage.js : fonction tracer_tirs, lignes 203 à 208)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ctxZG.beginPath();
    $ctxZG.arc($xs[$i],$es[$i],$f_ltir,0,2*Math.PI);
    $ctxZG.closePath();
    $ctxZG.stroke();
    $ctxZG.fill();
    Avant d'appeler cette fontion, il y a les changements de contexte qui sont à mon avis en cause (lignes 51 à 54)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ctxZG.save();
    $ctxZG.translate($xCentre,$yCentre) ;
    $ctxZG.rotate(-$aOrient);
    $ctxZG.scale($eAffich,-$eAffich);
    Il n'y a vraiment rien de sorcier dans ce code
    Et encore une fois, comment se fait-il que le javascript soit interprété différemment selon le serveur qui a envoyer le fichier ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/07/2011, 13h25
  2. Affichage différent selon le serveur web !
    Par Aspic dans le forum Général Conception Web
    Réponses: 20
    Dernier message: 10/09/2008, 19h58
  3. lien fichier javascript différent suivant serveur
    Par Nico36 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/09/2007, 12h10
  4. encodage différent selon serveur !
    Par dkmatt dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/05/2006, 15h32

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