2009-06-19 6 views
0

私はアヤックスとかなり複雑でASP.NET Webページに取り組んでいます、コールバックは、Javascriptなど私が断続的にこのエラーが発生します。このスクリプトを実行しているJSエラーを見つける - 「このスクリプトの実行を停止しますか?」

ストップ?このページのスクリプトは、IEが遅く実行される原因となっています...

犯人を見つける上で助けがあれば本当にありがとうございます。

+0

任意のコードでは、Firebugのため –

答えて

3

これは、無限ループまたは同期ajax呼び出しが返されない場合に発生します。問題をデバッグするにはFirebug、Fiddler、またはIE開発ツールでFirefoxを使用することをお勧めします。

+0

+1をいただければ幸いです...私は、私はそれなしになったのか分かりません! –

2

JavaScriptをデバッグしようとすると、次のいくつかは有用である:

  • 放火犯をインストールする - それは減速があなたのスクリプトで
  • をoccuringすることができる場所にあなたを導くことができ、アプリケーションをプロファイリングする能力を持っています
  • 疑わしいときは、警告文を使用してください。あなたのコードの中でそれらをペッパーして、あなたのJavaScriptが遅い場所を見つけるためにそれらを使用してください。
  • あなたのAJAXはのtry/catchブロック内で呼び出すラップhow to debug javascript in IE
  • javascript debugging tips多くを得るために、このSO質問、またはこの質問を見てみましょう - 記事Debugging AJAX in Production、私が見つけた技術
1

を説明IEと他のブラウザのポップアップの主な原因は文字列操作です。文字列をたくさん連結すると、文字列が大きくなるとIEのパフォーマンスが大幅に低下します。

しかし、多くのことが示唆されているように、開発ツールを使用することで、問題のある領域につながることが期待され、必要に応じてそこから手助けすることができます。

3

私は、次の記事を読んでお勧めします:単一javascriptのエントリポイントから実行されるコードは、長時間実行されるとき

一言で言えば

http://www.julienlecomte.net/blog/2007/10/28/

は、あなたが記述エラーメッセージが発生します。長い処理を分割してsetTimeout()を使用して順次呼び出すことができれば、エラーメッセージは表示されなくなります。

記事から、長時間実行されるJavaScriptのルーチンの良いテンプレート:

function doSomething (callbackFn [, additional arguments]) { 
    // Initialize a few things here... 
    (function() { 
     // Do a little bit of work here... 
     if (termination condition) { 
      // We are done 
      callbackFn(); 
     } else { 
      // Process next chunk 
      setTimeout(arguments.callee, 0); 
     } 
    })(); 
} 
関連する問題