У меня была трещина в некоторых проблемах по http://projecteuler.net/ с JavaScript. Я использовал простую страницу HTML и выполнял мой код в тегах script, таким образом, я могу зарегистрировать свои результаты в консоли браузеров. При экспериментировании с циклами я иногда заставляю браузер отказывать.
Существует ли лучшая среда для меня, чтобы сделать этот вид разработки?
Я могу предложить две готовые возможности:
1) Использовать отладчик с точками останова. Firebug довольно хорош. Safari и Chrome также имеют некоторые встроенные инструменты отладки.
2) Вы можете перенести тестирование из браузера, используя Mozilla Rhino и Env-js (см. http://groups.google.com/group/envjs и http://github.com/thatcher/env-js)
.Все современные браузеры (кроме Opera) должны прерывать ваш скрипт, если он выполняется более 5-10 секунд ( Источник ).
В Firefox вы можете даже снизить этот порог , если 10 секунд означают слишком большое наказание. Также обратите внимание, что этот механизм срабатывает, даже когда вы запускаете код из консоли Firebug:
Остановить скрипт в Firefox http://img819.imageshack.us/img819/9655/infloopsp.jpg
Я думаю, что только эта функция должна обеспечить довольно безопасную среду для этих зацикленных экспериментов :)
Если вы запускаете в своем браузере программы, требующие больших вычислительных ресурсов, вы можете использовать веб-воркеры . Короче говоря, они позволяют запускать код в другом потоке, который не блокирует браузер.
Вы ничего не можете сделать, чтобы предотвратить сбой браузера, кроме как исправить ошибки, вызывающие сбой браузера.
Вы можете, по крайней мере, уменьшить влияние сбоя, используя браузер, такой как Chrome, который обычно отделяет сбои на одной вкладке от других (так что вы теряете только свою страницу), или просто установив отдельный браузер специально для тестирования.
С точки зрения отслеживания данных, которые могли попасть в журнал, вы можете использовать такой плагин, как Firebug, со встроенным отладчиком, чтобы вы могли приостановить выполнение скрипта на полпути и проверить свои переменные, предположительно до любого сбоя. происходит.
Если вы просто заинтересованы в запуске программ javascript как таковых, почему бы вам не использовать что-то вроде node.js или даже Rhino? Таким образом, вы можете легко регистрировать вывод, не теряя его в случае возникновения проблем.