代码之家  ›  专栏  ›  技术社区  ›  Dr. Frankenstein

如何测试潜在的“浏览器崩溃”javascript?

  •  8
  • Dr. Frankenstein  · 技术社区  · 16 年前

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

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

    6 回复  |  直到 16 年前
        1
  •  5
  •   µBio    16 年前
    1. 每个选项卡都有单独进程的浏览器
    2. 调试器断点
    3. 如果达到某个时间阈值,则中断循环的if
        2
  •  1
  •   nickf    16 年前

    如果您在浏览器中运行的程序计算量很高,那么您可能希望使用 web workers . 简而言之,它们允许您在不同的线程中运行代码,而这不会锁定浏览器。

        3
  •  1
  •   unomi    16 年前

    如果你只是对运行这样的javascript程序感兴趣,为什么不使用node.js甚至rhino?这样,您就可以轻松地记录输出,而不会在输入“故障”时丢失输出。

        4
  •  1
  •   Weston C    16 年前

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

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

    2)您可以使用 Mozilla Rhino 和Env JS(见 http://groups.google.com/group/envjs http://github.com/thatcher/env-js )

        5
  •  1
  •   Daniel Vassallo    16 年前

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

    在火狐中,你甚至可以 lower this threshold 如果10秒意味着惩罚太大。还要注意,即使从Firebug控制台运行代码,此机制也会起作用:

    Stop Script on Firefox http://img819.imageshack.us/img819/9655/infloopsp.jpg

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

        6
  •  0
  •   VoteyDisciple    16 年前

    除了修复导致浏览器崩溃的错误之外,您无法阻止浏览器崩溃。

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

    在跟踪可能已进入日志的数据方面,您可能会使用一个内置调试器的插件(如Firebug),这样您就可以中途暂停脚本执行并检查变量,大概是在发生崩溃之前。

    推荐文章