8

私はJavaScriptを使ってhttp://projecteuler.net/でいくつかの問題にひびを入れてきました。単純なhtmlページを使用し、スクリプトタグでコードを実行して、ブラウザのコンソールに結果を記録できるようにしました。ループを試してみると、ブラウザがクラッシュすることがあります。

この種の開発を行うためのより良い環境はありますか?

4

6 に答える 6

5
  1. タブごとに個別のプロセスを持つブラウザ
  2. デバッガーブレークポイント
  3. 時間のしきい値に達した場合にループを中断する場合
于 2010-06-10T23:06:31.897 に答える
1

ブラウザで計算コストの高いプログラムを実行している場合は、Webワーカーの使用を検討することをお勧めします。つまり、ブラウザをロックしない別のスレッドでコードを実行できます。

于 2010-06-10T23:08:33.680 に答える
1

javascriptプログラムをそのまま実行することに興味がある場合は、node.jsやRhinoのようなものを使用してみませんか?そうすれば、出力が「トラブル」になった場合に、出力を失うことなく簡単にログに記録できます。

于 2010-06-10T23:15:32.337 に答える
1

私は2つの準備ができている可能性を考えることができます:

1)ブレークポイントのあるデバッガーを使用します。Firebugはかなりいいです。SafariとChromeには、いくつかの組み込みのデバッグツールもあります。

2) Mozilla RhinoとEnv-jsを使用して、テストをブラウザーの外に移動できます( http://groups.google.com/group/envjsおよびhttp://github.com/thatcher/env-jsを参照) 。

于 2010-06-10T23:19:14.913 に答える
1

最新のブラウザ(Operaを除く)はすべて、スクリプトが5〜10秒以上実行された場合にスクリプトを中断する必要があります(ソース)。

Firefoxでは、10秒が大きすぎる罰を意味する場合は、このしきい値をさらに下げることができます。また、Firebugコンソールからコードを実行する場合でも、このメカニズムが機能することに注意してください。

Firefoxでスクリプトを停止するhttp://img819.imageshack.us/img819/9655/infloopsp.jpg

この機能だけでも、これらのループ実験にかなり安全な環境を提供できるはずです:)

于 2010-06-10T23:24:36.510 に答える
0

ブラウザがクラッシュする原因となるバグを修正する以外に、ブラウザがクラッシュしないようにするためにできることは何もありません。

少なくとも、クラッシュの影響を軽減するには、Chromeのように、クラッシュを1つのタブで他のタブから分離する(つまり、自分のページだけを失う)か、テスト専用の別のブラウザーをインストールします。

ログに記録された可能性のあるデータを追跡するという点では、デバッガーが組み込まれたFirebugのようなプラグインを使用して、スクリプトの実行を途中で一時停止し、おそらくクラッシュが発生する前に変数を調べることができます。

于 2010-06-10T23:08:22.463 に答える