Как я могу протестировать потенциально “разрушающий браузер” JavaScript?

У меня была трещина в некоторых проблемах по http://projecteuler.net/ с JavaScript. Я использовал простую страницу HTML и выполнял мой код в тегах script, таким образом, я могу зарегистрировать свои результаты в консоли браузеров. При экспериментировании с циклами я иногда заставляю браузер отказывать.

Существует ли лучшая среда для меня, чтобы сделать этот вид разработки?

8
задан Daniel Vassallo 12 June 2010 в 00:48
поделиться

6 ответов

  1. браузер с отдельными процессами для каждой вкладки
  2. точки останова отладчика
  3. if, который разрывает цикл при достижении некоторого порога времени
5
ответ дан 5 December 2019 в 18:57
поделиться

Я могу предложить две готовые возможности:

1) Использовать отладчик с точками останова. Firebug довольно хорош. Safari и Chrome также имеют некоторые встроенные инструменты отладки.

2) Вы можете перенести тестирование из браузера, используя Mozilla Rhino и Env-js (см. http://groups.google.com/group/envjs и http://github.com/thatcher/env-js)

.
1
ответ дан 5 December 2019 в 18:57
поделиться

Все современные браузеры (кроме Opera) должны прерывать ваш скрипт, если он выполняется более 5-10 секунд ( Источник ).

В Firefox вы можете даже снизить этот порог , если 10 секунд означают слишком большое наказание. Также обратите внимание, что этот механизм срабатывает, даже когда вы запускаете код из консоли Firebug:

Остановить скрипт в Firefox http://img819.imageshack.us/img819/9655/infloopsp.jpg

Я думаю, что только эта функция должна обеспечить довольно безопасную среду для этих зацикленных экспериментов :)

1
ответ дан 5 December 2019 в 18:57
поделиться

Если вы запускаете в своем браузере программы, требующие больших вычислительных ресурсов, вы можете использовать веб-воркеры . Короче говоря, они позволяют запускать код в другом потоке, который не блокирует браузер.

1
ответ дан 5 December 2019 в 18:57
поделиться

Вы ничего не можете сделать, чтобы предотвратить сбой браузера, кроме как исправить ошибки, вызывающие сбой браузера.

Вы можете, по крайней мере, уменьшить влияние сбоя, используя браузер, такой как Chrome, который обычно отделяет сбои на одной вкладке от других (так что вы теряете только свою страницу), или просто установив отдельный браузер специально для тестирования.

С точки зрения отслеживания данных, которые могли попасть в журнал, вы можете использовать такой плагин, как Firebug, со встроенным отладчиком, чтобы вы могли приостановить выполнение скрипта на полпути и проверить свои переменные, предположительно до любого сбоя. происходит.

0
ответ дан 5 December 2019 в 18:57
поделиться

Если вы просто заинтересованы в запуске программ javascript как таковых, почему бы вам не использовать что-то вроде node.js или даже Rhino? Таким образом, вы можете легко регистрировать вывод, не теряя его в случае возникновения проблем.

1
ответ дан 5 December 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: