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 :

Petit timeout + chargement page


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Par défaut Petit timeout + chargement page
    Hello à tous,

    Alors voilà, je rencontre un petit problème en Javascript.

    J'utilise un setTimeout avec une valeur de 1000ms, ce qui est relativement petit. Le traitement effectué est une requête HTTP donc qui prend un certain temps aussi.
    Ce setTimeout est effectué sur toutes les pages du site.

    Mais le problème intervient lorsque je souhaite changer de page sur le site.

    Apparement lorsqu'une opération lancé par un setTimeout est en cours, et que la page se met à changer (ou à s'actualiser), cela produit des erreurs selon lesquelles certaines variables sont inconnues. Et là conséquence de tout ça est que la page ne se charge pas, dûe à ces erreurs Javascript qui arrivent de je ne sais où.

    J'ai essayé d'encadrer mes traitements par un gros try { }, mais rien n'y fait, des erreurs sont quand même produites.

    Voyez-vous ce que je veux dire ? voyez-vous une solution à celà ?

    Merci par avance !

    Flo

  2. #2
    Membre éprouvé Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Par défaut
    Bonsoir,

    Tu ne peux pas déclarer ta variable en global (pas dans une fonction)
    puis utiliser cela lors de l'utilisation de ton timeout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t=setTimeout("cequejaiafaire",1000);
    et lors de ton changement de page faire cela avant:


  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Par défaut
    Merci pour ta réponse Alt157, mais c'est une question ou une affirmation ?

    C'est comme ça que j'ai fait effectivement, mais le plus marrant c'est que le problème ne vient pas des variables de timeout, mais d'autres variables comme des tableaux, etc...

  4. #4
    Membre éprouvé Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Par défaut
    Ce n'était qu'une proposition. A priori inutile mais bon comme il n'y avait pas de codes je ne pouvais donc pas deviner que tu l'avais déjà fait ainsi.

    Je suis désolé de ne pouvoir t aider plus.

    Si tu peux mettre un petit bout de code peut être avec ce que tu as fait on sait jamais qu'il puisse y avoir quelque chose qui saute aux yeux de quelqu'un...

    Quels sont les erreurs javascript que tu récupères ?
    (Firefox -> Outils -> Console d erreurs )

    Est ce que ta page est en ligne ou as tu quelque chose que l'on peut "bidouiller" pour t'aider ?

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Par défaut
    Alors en fait, depuis que j'ai fait une petite modification, Firefox me sort des erreurs farfelues du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    userAgentButton is null
    [Break on this error] if(httpTabs[member_id].readyState == 4)
    Alors que je n'ai aucune variable "userAgentButton" dans mon code.

    Son probleme vient apparement de la variable "httpTabs", qui est un tableau déclaré en global, et chaque élément du tableau est (quand il n'y a pas de problème) déclaré bien avant son utilisation.
    La preuve, avant d'avoir un ".readyState", j'ai un ".send", etc... qui passent bien visiblement.

    La petite modification dont je parle était justement sur l'initialisation de chaque élément du tableau, que je fais à un autre endroit dans mon code. Avant cette modif, Firefox me disait bien "httpTabs is null" ou un truc du genre.

    Par ailleurs, que me conseillez-vous:
    - créer un objet XMLHttpRequest() dans la fonction, sachant que celle-ci sera appelée plusieurs fois via un timeout (donc création de plusieurs objets XMLHttpRequest()).
    - ou comme je le fais actuellement, un tableau global et chaque fonction vient chercher son objet dedans ensuite.

    ?

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Par défaut
    Bon je reviens donner des nouvelles.

    Il semblerait en fait, que mon problème était lié au fait que le site en question avait été mal codé à l'origine. Il y avait des balises <head> et <body> en plusieurs exemplaires dans les pages.
    Apparement ça ne posait pas de problème auparavant, mais lorsque j'ai ajouté mes trucs en Ajax, ça faisait que la page "buggait". A l'écran, ça donnait l'impression qu'elle se chargait 2 fois...

    Donc voilà je n'ai pas vraiment cherché à voir plus loin, j'ai nettoyé la page et ça a l'air OK maintenant

    Merci en tous cas !

Discussions similaires

  1. Chargement Page + DIV
    Par Seth77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/07/2006, 20h57
  2. [SWISH] Pb entre chargement de l'anim et chargement page
    Par auryn111 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 24/02/2006, 11h16
  3. chargement pages php + cache navigateur
    Par grinder59 dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 14h44
  4. [Tableaux] Chargement pages dynamique
    Par pittacos dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 10h41
  5. fenetre sans bords pour attente chargement page
    Par k4eve dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2004, 10h17

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