5 votes

Comment prolonger le délai d'exécution du script du navigateur ?

J'ai un certain JQuery qui prend du temps à s'exécuter et après quelques secondes, j'obtiens l'erreur suivante :

Arrêter d'exécuter ce script ? Un script sur cette page provoque un ralentissement du fonctionnement d'Internet Explorer. S'il continue à s'exécuter, votre ordinateur risque de ne plus répondre.

Y a-t-il un moyen de prolonger le délai d'attente ? Je suppose que cela signifierait prolonger le délai d'attente sur la machine de la personne qui navigue vers l'URL.

6voto

txipi Points 31

Si vous exécutez votre script sous Google Chrome, vous pouvez désactiver le moniteur de suspension avec le drapeau : --disable-hang-monitor à la ligne de commande.

Sous les navigateurs basés sur Mozilla (par exemple, Firefox, Camino, SeaMonkey, Iceweasel), allez dans about:config et modifiez la valeur de la clé dom.max_script_run_time.

3voto

Artem Barger Points 18789

Si vous voulez savoir si vous pouvez le modifier par programmation, vous ne pouvez pas le faire car il s'agit d'une action non sécurisée et aucun navigateur ne vous permettra de le faire.

PS. Comme suggéré ci-dessus, essayez de comprendre le problème et refactorez votre code pour réduire le temps d'exécution.

3voto

Emmanuel Caradec Points 1451

Sous Internet Explorer, l'instruction maximale autorisée à s'exécuter dans un script avant de voir apparaître le dialogue de dépassement de délai est contrôlée par une clé de registre :

HKEY_CURRENT_USER \Software\Microsoft\InternetExplorer\Styles\MaxScriptStatements

Il s'agit d'une déclaration maximale, qui ne doit pas être liée à la vitesse de fonctionnement de l'ordinateur. Il peut y avoir d'autres valeurs dont je n'ai pas connaissance.

La valeur par défaut est de 5 000 000. En faites-vous trop ?

Ver http://support.microsoft.com/kb/175500 .

1voto

David Salzer Points 881

JQuery a sa propre propriété de timeout. Voir : http://www.mail-archive.com/jquery-en@googlegroups.com/msg15274.html

Cependant, le message que vous obtenez n'est pas un problème de jQuery mais un problème de serveur ou d'architecture.

Essayez de voir si vous chargez trop d'appels Ajax en même temps. Voyez si vous pouvez le modifier pour gérer moins d'appels à la fois.

Vérifiez également le serveur pour voir combien de temps il faut pour obtenir une réponse. Dans le cas de requêtes XHR longues, le serveur peut mettre trop de temps à répondre. Dans ce cas, l'application ou le service côté serveur doit être modifié.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X