Как я могу проверить потенциально «сбой браузера» JavaScript? - PullRequest
8 голосов
/ 11 июня 2010

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

Есть ли для меня лучшая среда для такого развития?

Ответы [ 6 ]

5 голосов
/ 11 июня 2010
  1. браузер, который имеет отдельные процессы для каждой вкладки
  2. точки останова отладчика
  3. , если это прерывает цикл при достижении некоторого порога времени
1 голос
/ 11 июня 2010

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

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

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

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

1 голос
/ 11 июня 2010

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

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

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

1 голос
/ 11 июня 2010

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

1 голос
/ 11 июня 2010

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

0 голосов
/ 11 июня 2010

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

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

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

...