При использовании Firefox (я знаю, что вопрос не определяет Firefox, но я просто добавляю это, в случае, если это кому-то помогает), Safari и Chrome, я обнаружил, что нет единого способа сломатьв бесконечный цикл, но есть способы настроить выполнение, чтобы разорвать в цикл, если вам нужно.Смотрите мой тестовый код ниже.
Firefox
Чрезвычайный мусор.Он просто стоял, вращая свою радугу.Мне пришлось его убить.
Safari
Приятная вещь в Safari - это то, что он в конечном итоге выдает диалоговое окно с вопросом, хотите ли вы остановиться.Ты должен сказать да.Затем нажмите command-option i
, чтобы вызвать веб-инспектора.Должен появиться источник, сообщающий, что Javascript превысил время ожидания.Нажмите кнопку паузы справа вверху, затем обновите.Код будет перезагружен, теперь шаг за шагом: мне нравится использовать command-;
, потому что он проходит через каждый вызов.Если у вас сложный код, вы можете никогда не дойти до конца.Не нажимайте continue
(command-/
), иначе вы вернетесь на круги своя.
Chrome
Самый полезный из трех.Если вы наивно загрузите код, он будет работать вечно.Но перед загрузкой страницы откройте веб-инспектор и выберите «Загружать ресурсы все время».Затем перезагрузите страницу.Пока страница пытается загрузить, вы можете нажать на сценарии и приостановить Javascript во время его работы.Это то, что я искал.
Код
<html>
<head></head>
<body onload="TEST.forever.loop()">
Nothing
</body>
<script type="text/javascript">
TEST = {};
TEST.forever = {
loop : function() {
var i = 0;
while (i >= 0) {
i++;
}
}
};
</script>
</html>