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 :

JavaScript qui ne fonctionne qu'un temps


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 16
    Points
    16
    Par défaut JavaScript qui ne fonctionne qu'un temps
    Bonjour à tous,

    J'ai un problème avec un javascript utilisé dans mon entreprise. Mon script change la source d'une iframe et boucle pour afficher un certain nombre de pages.

    Le script est utilisé pour faire de l'affichage sur des écrans. Il marche parfaitement sauf qu'au bout d'un certain temps la source continu à changer mais j'ai des pages blanches ou grises (quand c'est un fichier pdf qu'il veut afficher)...

    J'ai pensé à un problème de cache donc j'ai ajouté les balises html pour ne pas mettre les pages en cache mais cela ne règle pas le problème.

    Mon code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <html>
    	<head>
    		<!-- Permet de ne pas mettre la page en cache -->
    		<meta http-Equiv="Cache-Control" Content="no-cache">
    		<meta http-Equiv="Pragma" Content="no-cache">
    		<meta http-Equiv="Expires" Content="0">
    		<!-- Fin de la gestion du cache -->
     
    		<!-- Script de changement de source pour l'iframe. -->
    		<script type="text/javascript">
                            // Fonction récursive
                            function changerSite(num){
                                    var numSite = num;
                                    // dossier racine
                                    var dossier = "http://trixmes01/mes_reporting/";
                                    // pages à afficher. On peut en ajouter autant qu'on veux sans changer la suite du script
                                    var site = new Array("page1.aspx",
                                                                            "page2.aspx",
                                                                            "PDF/fichier.pdf#page=4",
                                                                            "page3.aspx",
                                                                            "page4.aspx");
                            
                                            if(numSite>=site.length) numSite = 0; // Valeur limite
                                            // On change la source de la frame en fonction du numero de site appelé
                                            window.frames['frame'].location = dossier + site[numSite];
                                            // Après 120 secondes on rappel la fonction avec le numero de site suivant
                                            numSite = numSite + 1;
                                            setTimeout("changerSite(" + numSite + ")",120000); // Récusivité en appliquant un délai
                            }
                    </script> 
     
     
     
    	</head>
    	<!-- Au chargement de la page on lance la fonction changerSite -->
    	<body onLoad=changerSite(0);>
    	<!-- Une frame qui prend la taille de l'écran à 100%. On supprime la barre de défillement et les bordures -->
    		<iframe name="frame" width="100%" height="100%" frameborder="0" scrolling="no" src="" >
    	</body>
     
    </html>

    Si vous avez des idées je suis preneur

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    déja pour ce qui est du setTimeout avec passage de paramètre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setTimeout(function(){changerSite( numSite),120000); // Récusivité en appliquant un délai
    pour ce qui est de l'affichage des pdf cela provient à mon avis plus de ton plugin de lecture de pdf

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci je vais essayer de changer cette partie du code par contre je ne pense pas que mon problème vienne de cette partie et ni du plugin car le script fonctionne très bien pendant plusieurs jours (variable) et d'un coup que des pages blanches ou grises suivant si c'est une page ou un pdf qui est appelé.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Ne pas mettre les données fixes dans une fonction récursive, particulièrement avec un "new Array()". Je suggère de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    var numSite = 0,
        dossier = "http://trixmes01/mes_reporting/",
        site = [
            "page1.aspx",
            "page2.aspx",
            "PDF/fichier.pdf#page=4",
            "page3.aspx",
            "page4.aspx"
        ];
     
    function changerSite( num ){        
        if ( numSite >= site.length ){
            numSite = 0;
        }
     
        window.frames[ 'frame' ].location = dossier + site[ numSite ];
     
        setTimeout( function(){
            changerSite( ++numSite );
        }, 120000 );
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci pour ton aide,

    j'ai mis ta solution en production, j’attends une petite semaine pour voir si le problème reviens et je reviendrai faire mon compte rendu

    et au passage bonne année et meilleurs vœux pour 2014.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    La modification nous fait gagner un peut de temps mais ça plante toujours.

    Je pense à la mémoire qui sature car une fois que les pages ne veulent plus s'afficher, le système ne répond plus très bien lui aussi. On ne peut plus rien ouvrir et même pas un dossier et le clic droit ne fonctionne plus aussi.

    Dès que je ferme la page tout rentre dans l'ordre.

    Si ma piste est bonne, auriez vous un moyen de mieux gérer la mémoire avec ce code ?

Discussions similaires

  1. Redirection en javascript qui ne fonctionne pas avec un return
    Par sandddy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/08/2011, 16h38
  2. Code Javascript qui ne fonctionne pas d'une page à l'autre
    Par Vict0 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/03/2011, 22h44
  3. Fonction javascript qui ne fonctionne pas sous IE
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/03/2009, 20h10
  4. Fonctions javascript qui ne fonctionnent plus
    Par Whombat dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/01/2009, 13h32
  5. function javascript qui ne fonctionne pas dans la balise <body>
    Par typikal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/04/2008, 16h45

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