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] comment interrompre l'ex�cution d'un script?


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut [javascript] comment interrompre l'ex�cution d'un script?
    Bonjour � tous,

    j'ai une page html, qui comporte un activeX, et une fonction javascript qui ressemble � ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    function MaFonction() 
    {
       var toto = UnTruc();
       MonActiveX.FaitQuelqueChose(toto);
       FaitUnAutreTruc();
    }
    Ce qui se passe, c'est que l'ex�cution de MonActiveX.FaitQuelqueChose(toto); prend un certain temps, et la fonction FaitUnAutreTruc(); est appel�e alors que MonActiveX.FaitQuelqueChose(toto); n'a pas achev� son ex�cution.

    Ce que je voudrais, c'est bloquer l'ex�cution de MaFonction apr�s l'appel � MonActiveX.FaitQuelqueChose(toto); Ensuite, je peux savoir quand l'ex�cution de MonActiveX.FaitQuelqueChose(toto); est termin�e et faire passer un bool�en � true par exemple.

    Il me faudrait donc quelque chose qui ressemblerais �:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    while(!flag) //flag sera affecté à true lorsque l'exécution de MonActiveX.FaitQuelqueChose(toto); est terminée
    {
       wait(50);
    }
    Cependant, j'ai plusieurs soucis:
    1/ Comment faire cela en javascript?
    2/ Je ne voudrais pas que cela prenne trop de ressources.
    3/ Il faut que ce soit absolument "safe". Par exemple, s'il y a un soucis dans l'ex�cution de MonActiveX.FaitQuelqueChose(toto); et que flag n'est pas affect� � True, il ne faut pas que �a boucle ind�finiment.

    Voil�, j'esp�re avoir �t� clair (je suis absolument nul en javascript).
    Merci pour vos propositions

    r0d.

  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
    regarde du cot� de setInterval ...
    tu testes ton flag � intervalles r�gulier ...
    avec �ventuellement un incr�ment qui fixe un maximums d'it�rations qui te permettra de sortir du test si il n'y a pas de retour ...
    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
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Merci SpaceFrog,

    Mais c'est le m�me probl�me qu'avec setTimeout, � savoir que l'ex�cution n'est pas stopp�e.

    Prenons un exemple concret:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    function MaFonction()
    {
       MonActiveX.Fonction1();
       Fonction2();
    }
    Je voudrais que Fonction2() ne soit pas ex�cut�e tant que MonActiveX.Fonction1() n'a pas termin� sont ex�cution. Car - je ne sais pas si c'est d� au fait que c'est un activeX - pour l'instant, ce n'est pas le cas.

    Donc si je fais quelque chose du style:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function MaFonction()
    {
       MonActiveX.Fonction1();
       setInterval(...);
       Fonction2();
    }
    je peux mettre ce que je veux comme papram�tres � setInterval, Fonction2() sera appel�e sans attendre la fin de l'ex�cution de MonActiveX.Fonction1(); ni de setInterval();

    N'y a-t-il pas un �quivalent � wait() ou sleep() en javascript?

  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
    tu veux ne lancer la focntion2 que si le flag est modifi� ?
    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
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Oui. Enfin, c'�tait une fa�on de dire que je veux vraiment stopper l'ex�cution du script. En r�alit�, c'est un peu plus compliqu� que �a: je suis dans un cadre bien particulier (SDK Activity, pour faire une sorte de plug-in pour Windows Live Messenger).
    Donc en fait, MaFonction est, en fait, un �v�nement de cette SDK et lorsque l'ex�cution de cette fonction est termin�, d'autres �v�nements vont �tre automatiquement d�clanch�s, et je n'ai aucun contr�le la-dessus. C'est pourquoi je voudrais simplement "bloquer" l'ex�cution.

    Donc au final, je me rend compte que je me suis compliqu� pour rien: ma question serait simplement "comment bloquer l'ex�cution (�quivalent d'un wait ou d'un sleep) en javascript"?


  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
    bloquer l'execution n'est pas possible ... enfin pas directement du fait du d�roulement en bulle des instructions, au mieux il faut faire une sorte de routeur sur la base d'une fonction avec un setInterval pour tester un flag

    une psite :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type='text/javascript'>
    var launch
    function one(){launch= setInterval(function(){document.body.innerHTML+=('coucou \<\/br\>')},500)}
     
    function two(){ clearInterval(launch) ; window.one=null}
     
    </script>
    </head>
     
    <body >
     
    <input type='button' onclick="one()" value='go' />
    <input type='button' onclick="two()" value='kill' />
    </body>
    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 !

Discussions similaires

  1. Comment arr�ter l'ex�cution d'un script ?
    Par [ZiP] dans le forum G�n�ral Python
    R�ponses: 10
    Dernier message: 08/11/2011, 20h00
  2. comment interrompre une ex�cution
    Par benooo dans le forum Interfaces Graphiques
    R�ponses: 15
    Dernier message: 16/06/2011, 20h15
  3. [EasyPHP] Comment programmer l'ex�cution d'un script php ?
    Par onlytime dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 8
    Dernier message: 29/03/2008, 19h56
  4. R�ponses: 6
    Dernier message: 12/12/2006, 01h30
  5. [Syst�me] Interrompre l'ex�cution d'un script..
    Par FrankOVD dans le forum Langage
    R�ponses: 2
    Dernier message: 01/09/2006, 21h21

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