8

我一直在用 JavaScript解决http://projecteuler.net/上的一些问题。我一直在使用一个简单的 html 页面并在脚本标签中运行我的代码,这样我就可以在浏览器的控制台中记录我的结果。在尝试循环时,我有时会导致浏览器崩溃。

有没有更好的环境让我做这种开发?

4

6 回答 6

5
  1. 每个选项卡都有单独进程的浏览器
  2. 调试器断点
  3. 如果达到某个时间阈值,则 if 会中断循环
于 2010-06-10T23:06:31.897 回答
1

如果您在浏览器中运行计算量大的程序,您可能需要考虑使用web workers。简而言之,它们允许您在不会锁定浏览器的不同线程中运行代码。

于 2010-06-10T23:08:33.680 回答
1

如果你只是对运行 javascript 程序感兴趣,为什么不使用 node.js 甚至 Rhino 之类的东西呢?这样,您可以轻松地记录输出,而不会在遇到“麻烦”时丢失它。

于 2010-06-10T23:15:32.337 回答
1

我可以想到两种现成的可能性:

1) 使用有断点的调试器。Firebug相当不错。Safari 和 Chrome 也有一些内置的调试工具。

2)您可以使用Mozilla Rhino和 Env-js将您的测试移出浏览器(参见http://groups.google.com/group/envjshttp://github.com/thatcher/env-js

于 2010-06-10T23:19:14.913 回答
1

如果脚本运行超过 5-10 秒(Source),所有现代浏览器(Opera 除外)都应该中断您的脚本。

在 Firefox 中你甚至可以降低这个阈值,如果 10 秒意味着一个太大的惩罚。另请注意,即使您从 Firebug 控制台运行代码,此机制也会生效:

在 Firefox 上停止脚本 http://img819.imageshack.us/img819/9655/infloopsp.jpg

我认为仅此功能就应该为这些循环实验提供一个非常安全的环境:)

于 2010-06-10T23:24:36.510 回答
0

除了修复导致浏览器崩溃的错误之外,您无法采取任何措施来防止浏览器崩溃。

您至少可以通过使用像 Chrome 这样的浏览器来减轻崩溃的影响,这种浏览器通常将一个选项卡中的崩溃与其他选项卡隔离开来(因此您只会丢失自己的页面),或者只是安装一个专门用于测试的单独浏览器。

在跟踪可能已进入日志的数据方面,您可以使用像 Firebug 这样的插件,它具有内置调试器,因此您可以暂停脚本执行并检查您的变量,大概是在发生任何崩溃之前。

于 2010-06-10T23:08:22.463 回答