2011-12-09 4 views
0

Je suis en train de créer un site Web où nous devons utiliser beaucoup de travail de script. Mais en raison de la charge de données importante que nous chargeons la liste pour youtube le navigateur raccroche en raison d'une erreur de script qui ne répond pas.Erreur de script ne répond pas Jquery

Les données sont en cours de chargement à l'aide d'AJAX.

Quelqu'un peut-il suggérer comment résoudre ce problème?

Vos suggestions seront grandement appréciées.

Merci à l'avance

J

+0

Pourriez-vous, s'il-vous-plaît, apporter le code qui échoue? – Alfabravo

+0

Je pense que nous aurons besoin de plus d'informations de votre part afin de fournir une réponse vraiment utile. Pouvez-vous poster un exemple du code qui fait l'appel AJAX? À tout le moins, pouvez-vous nous dire si l'appel est synchrone ou asynchrone? Combien d'éléments créez-vous/ajoutez-vous à la page. Combien de mémoire utilise le navigateur? – dgvid

+0

@dgvid Dans le cas où j'utilise l'AJAX, il est évident que l'appel sera asynchrone. Et en ce qui concerne le code, la plupart du travail est fait en utilisant l'ajax car le site a une interface graphique lourde. Alors quelle est ma principale préoccupation est d'optimiser les scripts pour se comporter correctement. –

Répondre

2

Vous pouvez modifier les valeurs de dom.max_script_run_time et dom.max_chrome_script_run_time, mais cela signifie que l'avertissement est moins souvent.

La meilleure chose à faire est de trouver la racine du problème. Je pense que vous utilisez Firefox, donc si le script tourne trop lentement et longtemps, cliquez simplement sur le bouton Arrêter le script et allez à la console d'erreur.

More info are here.

+0

C'est le format basé sur l'utilisateur pour changer le max_script_run_time dans firefox mais je pose la question du point de vue du développeur. –

1

Sans connaître les détails, je ne peux offrir que ces généralisations. Peut-être qu'un ou plusieurs aideront:

  • L'appel jQuery .ajax prend une option pour rendre l'appel synchrone. Cela, combiné avec un serveur qui ne répond pas, provoquerait le problème que vous décrivez. Donc, assurez-vous que vous n'avez pas défini cette option par erreur.
  • Sur certains navigateurs, FF au moins, à court de mémoire provoque une erreur de script ne répond pas. Chrome a une fonctionnalité intéressante dans laquelle vous pouvez ouvrir un nouvel onglet, entrez "about: memory" dans la barre d'adresse, et un aperçu rapide de la quantité de mémoire utilisée par les autres onglets/fenêtres de Chrome. Vous voyez quelque chose d'extravagant ici?
  • Sur FF et IE, j'ai vu une boucle infinie provoquer une erreur de script ne répond pas. Utilisez un profileur pour détecter cette condition.
  • Un profileur, comme celui intégré à Firebug par exemple, peut vous aider à déterminer où se trouve le problème dans votre script. Sachant cela, vous pouvez chercher des occasions de diviser le code en plus petites opérations. E.g., si vous traitez une grande quantité de données, vous pourriez peut-être faire un appel récursif à un gestionnaire setTimeout pour traiter des blocs de données à la fois.