2011-12-09 24 views
0

多くのスクリプトを使用する必要があるWebサイトを作成する途中です。しかし、YouTubeのリスティングを読み込んでいるときに大量のデータが読み込まれているため、ブラウザが応答しないスクリプトエラーのためにハングアップします。応答しないスクリプトエラーJquery

データはAJAXを使用してロードされています。

どのようにこの問題に取り組むことができますか?

あなたの提案は高く評価されます。事前に

おかげ

J

+0

ここでコードが失敗することはありますか? – Alfabravo

+0

本当に有益な答えを出すために、より多くの情報が必要になると思います。 AJAX呼び出しを行うコードの例を投稿できますか?少なくとも、呼び出しが同期的か非同期的かを教えてください。いくつの要素をページに作成/追加していますか?ブラウザはどのくらいのメモリを使用していますか? – dgvid

+0

@dgvidもし私がAJAXを使用している場合は、明らかに呼び出しは非同期になります。コードに関しては、Webサイトに重いGUIがあるので、ほとんどの作業はajaxを使って行われます。だから私の主な関心事は、スクリプトが適切に動作するように最適化することです。 –

答えて

2

あなたはdom.max_script_run_timeとdom.max_chrome_script_run_time値を変更することができますが、それは警告があまり頻繁に来ることを意味します。

あなたができることは、問題の根本を見つけ出すだけです。私はあなたがFirefoxを使用していると思うので、スクリプトが遅すぎると長いスクリプトを停止ボタンをクリックし、エラーコンソールに移動します。

More info are here.

+0

これはfirefoxのmax_script_run_timeを変更するためのユーザーベースのフォーマットですが、私は開発者の観点から質問しています。 –

1

詳細を知らなければ、私はこれらの一般化を提供することができます。

  • jQuery .ajax呼び出しでは、呼び出しを同期させるオプションがあります。それは、応答しないサーバーと組み合わせると、あなたが記述する問題を引き起こします。だから間違いなくそのオプションを設定していないことを確認してください。
  • 一部のブラウザでは、最低でもFFがメモリ不足のため、スクリプトエラーが応答しなくなります。 Chromeには新しいタブを開き、アドレスバーに「about:memory」と入力して他のChromeタブ/ウィンドウが使用しているメモリ量を簡単に把握することができます。ここには何も見せない?
  • FFとIEでは、無限ループが原因で応答しないスクリプトエラーが発生しています。この状態を検出するには、プロファイラを使用します。
  • たとえば、Firebugに組み込まれているようなプロファイラは、スクリプトのどこに問題が発生しているのかを特定するのに役立ちます。そのことを知ると、コードを小さな操作に分割する機会を探すことができます。 など。、大量のデータを処理している場合は、再帰呼び出しでsetTimeoutハンドラを使用して、一度にデータのチャンクを処理できます。