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 :

Retarder l'appel d'un script


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut Retarder l'appel d'un script
    Bonjour, j'ai un script qui affiche sur ma page un contenu fourni par un partenaire. Souvent, l'ensemble du chargement de ma page se bloque le temps que le-dit script ait fini de se charger. Je souhaite donc retarder l'appel de ce script.

    Je me suis intéressé tout naturellement à la fonction setTimeout, sauf qu'elle permet de retarder l'appel d'une fonction, non pas d'un script ! Est-il possible de retarder l'appel d'une fonction qui appellerait elle-même un script ?

    Merci d'avance.

  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
    mets le script dans une focntion ...
    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 éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    A priori ça ne fonctionne pas, j'avais essayé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    script language="JavaScript">
    function chargementMeteo(){
    	<script type="text/javascript" src="http://www...."></script>
    }
    </script>
    Mais je m'y prends peut-être mal !!...

  4. #4
    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
    Ha ben ça va tout de suite mieux quand tu expliques ...
    Je ne voyais pas ça comme ça ... le script externe
    c'est en effet mois simple du coup ...

    Je vois deux possibilités:

    essaye de mettre la balise script en disabled
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" id='meteo' disabled='disabled' src="http://www...."></script>
    et dasn le setTimeout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('meteo').disabled='false'
    m'étonnerais que ça marche ^^

    sinon je pense que tu aurais plus de chance dans le setTimeout en creant une balise script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var meteo=document.createElement('script')
    meteo.type='text/javascript';
    meteo.src=-http://www...'
    document.body.appendCHild(meteo)
    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 !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Terrible, ça fonctionne super ! Merci bcp.
    Par contre ça me remplace l'ensemble de mon site par la page appelée par le script. Etant donné que je souhaite afficher le contenu dans une div, voici comment j'ai procédé mais cela ne fonctionne pas.

    Dans ma page index.php je paramètre la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script language="Javascript">
    function chargementMeteo(){
    	var meteo = document.createElement('script');
    	meteo.type = 'text/javascript';
    	meteo.src = 'http://www...';
    	document.getElementById('c_accueil_meteo').appendChild(meteo);
    }
    </script>
    Dans ma page index.php?page=accueil où l'appel de la fonction se fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="c_accueil_meteo">
    	<script language="JavaScript" type="text/javascript">meteo=(setTimeout("chargementMeteo()", 1500));</script>
    </div>
    Est-ce possible d'afficher le contenu chargé là où la fonction est placée, c'est-à-dire dans la div c_accueil_meteo ?

  6. #6
    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
    difficile à dire, je pense que cela vient du fait que la fonction fait un document.write
    du coup à part mettre ce code là dans un iframe je vois pas trop ...
    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 !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Le code d'appel qui est dans la Div ?

  8. #8
    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
    mets un iframe autour de cette div
    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 !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    ouais mais un iframe appelle forcément une page non ? Ce qui signifierait qu'il me faut faire une autre page dans laquelle je mets ma div ?...

  10. #10
    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
    non pas du tout essaye ...
    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 !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Oui j'ai essayé, et il ne se passe rien ! J'ai mis une image sous le script histoire de vérifier, et elle ne s'affiche même pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <iframe>
    <div id="c_accueil_meteo">
    	<script language="JavaScript" type="text/javascript">meteo=(setTimeout("chargementMeteo()", 2000));</script>
    	<br /><br />
    	<a href="#"><img src="img/accueil/meteoradars.gif" width="100px" height="100px" border="0" /></a>
    </div>
    </iframe>
    Et si je tente d'appeler une autre page dans laquelle je mets la div, la fonction n'est plus reconnue.

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Citation Envoyé par nicolas2603 Voir le message
    Est-ce possible d'afficher le contenu chargé là où la fonction est placée, c'est-à-dire dans la div c_accueil_meteo ?
    malheureusement non :'( je m'y suis cassé les dents pendants 2 jours complet...
    pas possibilité de récupérer le contenu du script ...

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Aie ! Et en feintant, du genre dans cette div j'appelle la fonction (quand j'ai la page d'accueil affichée quoi) et la fonction génère une div qu'elle place ensuite avec le contenu du script. C'est envisageable ça ?

  14. #14
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    pas compris lol

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Si je ne peux pas afficher le contenu de ce que charge mon script lorsqu'il est appelé dans la div, je peux peut être appeler ma fonction qui va créer en + une div, mettre le contenu dedans, et afficher tout ça sur ma page ? Je suis plus clair ?

  16. #16
    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
    le truc est que tu ne maitrise pas ce que fait la fonction externe ...
    à mon avis elle fait direct un document.write c'est donc mort pour la generation de div et de contenu.
    Selon moi la seul possibilité est l'iframe ...
    as tu essayé ???
    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 !

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Oui j'ai essayé, a priori le code contenu dans l'iframe n'est plus interprété !
    Je dis ça car j'ai rajouté une image sous l'appel du script, et elle n'apparait même pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <iframe>
    <div id="c_accueil_meteo">
    	<script language="JavaScript" type="text/javascript">meteo=(setTimeout("chargementMeteo()", 2000));</script>
    	<a href="#"><img src="img/accueil/meteoradars.gif" width="100px" height="100px" border="0" /></a>
    </div>
    </iframe>
    J'ai testé en laissant le document.body.appendChild(meteo); dans la fonction et également avec document.getElementById('c_accueil_meteo').appendChild(meteo);.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Tiens je remarque que le code du début qui fonctionne (sous FF), ne fonctionne pas sous IE 6 !

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Bonjour, je reviens vers vous concernant mon problème de script. J'ai réussi à retarder l'appel de ma fonction, et à afficher le contenu dans la div qui me convenait, en utilisant les iframe comme conseillé ci-dessus. Seulement cela fonctionne sur Firefox mais apparemment il ne se passe rien sur IE6. Voici le code utilisé :

    Dans ma page d'accueil où le contenu du script doit être affiché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="c_accueil_meteo">
    	<iframe src="accueil_meteo.php" width="100%" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
    	<br /><br />
    	<a href="#"><img src="img/accueil/meteoradars.gif" width="100px" height="100px" border="0" /></a>
    </div>
    Et l'iframe qui est appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script language="Javascript">
    function chargementMeteo(){
    	var meteo = document.createElement('script');
    	meteo.type = 'text/javascript';
    	meteo.src = 'http://...';
    	document.body.appendChild(meteo);
    }
    </script>
     
    <script language="JavaScript" type="text/javascript">meteo=(setTimeout("chargementMeteo()", 2000));</script>
    Qu'est-ce qui peut bien entraîner cette différence ? Merci d'avance.

  20. #20
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    pourquoi ne pas créer une méthode sleep ??

Discussions similaires

  1. Appel d'un script PHP depuis PERL
    Par tazmann dans le forum Web
    Réponses: 7
    Dernier message: 09/11/2007, 02h12
  2. Appel d'un script depuis un script...
    Par byloute dans le forum Linux
    Réponses: 1
    Dernier message: 27/10/2005, 16h13
  3. Appel d'un script SQL dans une procdure stockée
    Par doudou10000 dans le forum Oracle
    Réponses: 10
    Dernier message: 01/12/2004, 10h01
  4. Réponses: 7
    Dernier message: 30/09/2004, 12h19
  5. [Kylix] Appel d'un script depuis un Kylix...
    Par paty.olivier dans le forum EDI
    Réponses: 9
    Dernier message: 13/05/2004, 16h04

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