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 :

Freeze du navigateur


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut Freeze du navigateur
    Bonjour,

    Je travaille sur une extension firefox.

    J'ai une fonction qui met plusieurs secondes à retourner une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var result = myComponent.myFunction();
    if(result ==1)
    {
     ....
    }
    Pendant ce temps de réponse, le navigateur se freeze. Comment faire pour éviter cela?

    Merci d'avance

  2. #2
    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
    ça sent la fonction ajax synchrone ...

    un morceau de code peut-être ?

    s'il s'agit effectivement d'ajax en mode synchrone => AUCUNE solution

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Alors pour donner plus de détails:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // creation de l'instance de mon composant
    var myComponent = Components.classes["@monsite.com/MyExtension_cpp;1"]
    				.getService(Components.interfaces.nsIMyExtension);
     
    //appelle d'une fonction du composant
    var result = myComponent.myFunction();
    Ceci appelle une fonction d'une dll (codée en C++) et me retourne une valeur. Seulement cela prend plusieurs secondes.

    Le processus est donc synchrone. Comment faire différement alors pour éviter le freeze? Cela n'est pas possible au niveau du javascript?

    Dans la fonction de la dll, j'exécute une boucle jusqu'à ce qu'une condition soit atteinte (res!=0) (un autre thread s'exécute en parralèle qui modifie la valeur de res)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(i<Temps_max*(1000/pauseMS) && res==0) 
    {
    		Sleep(pauseMS);
    		++i;
    }

  4. #4
    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 de solution étant donné que le plugin est lodé en synchrone ...
    désolé ^^

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    utilise le
    setTimeout
    pour appeler la fonction

  6. #6
    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
    le problème sera le même matthieu, au load du plugin, le navigateur sera freezé un instant ...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/06/2015, 13h26
  2. Applet Swing - freeze aléatoire navigateur + JVM
    Par Loicb dans le forum Applets
    Réponses: 1
    Dernier message: 25/11/2008, 19h32
  3. API pour changer le proxy du navigateur
    Par SteelBox dans le forum Windows
    Réponses: 2
    Dernier message: 16/02/2004, 23h15
  4. Réponses: 2
    Dernier message: 21/07/2003, 12h22
  5. Réponses: 4
    Dernier message: 04/12/2002, 11h07

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