В настоящее время я испытываю промежуточную проблему с некоторым унаследованным javascript на стороне клиента. Время от времени пользователи сталкиваются с зависанием браузера, когда курсор становится таймером яйца, а затем браузер не отвечает.
Мне очень трудно определить, в чем проблема. За исключением отключения больших фрагментов javascript за один раз, есть ли способ обнаружить зависание в Internet Explorer, а затем изучить трассировку стека, чтобы определить несколько последних функций, вызванных для локализации проблемы?
Любая помощь с этим будет очень признательна.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Обновлять: вы можете использовать Помощник по веб-разработке или Панель инструментов IE Dev для отслеживания ваших вызовов Javascript. Скрипач также является мощным прокси-сервером для веб-отладки.
Если вы хотите устранить часть проблемы, связанную с IE, сначала отключите все ненужные надстройки, загруженные в Internet Explorer. У меня была большая проблема с аддонами скайпа.
Если вы хотите осуществлять мониторинг на низком уровне, вам нужно использовать такие инструменты, как Process Explorer и Process Monitor. У них есть функции для отображения трассировки стека, вашей трассировки файлов и реестров, к которым осуществляется доступ из вашего IE.
Для профилирования javascript вы можете использовать такой инструмент, как Firebug.
Это приложение предназначено только для IE и несовместимо с Firefox, поскольку инфраструктура компании не поддерживает Firefox. Кроме того, это также происходит на урезанной виртуальной машине, на которой не установлены дополнительные модули или панели инструментов.
Вы действительно не представляете, какой именно сценарий может вызывать проблему? IE8 beta 2 имеет несколько хороших функций отладки / профиля, я бы старался искать возможных виновников ресурсов (например, карты Google, вызовы ajax, добавление таблицы манипуляции dom и т. д.) И использовать отладчик для установки точек останова и мониторинга вещей таким образом. Также я бы проверил использование профилировщика firebug, чтобы узнать, какие методы вызываются больше всего и занимают больше всего времени, вы можете получить ответ в этих результатах или, по крайней мере, предоставить вам отправную точку
Если вы запустите приложение и подключите визуальную студию (если она у вас есть) и присоедините ее к процессу ie, вы должны иметь возможность нажать паузу в Visual Studio, когда то есть начинает зависать, и он должен сломаться в стеке js. Я использовал это для отладки проблемы с созданием многоугольников для карт Google.
но вам нужна визуальная студия (я использую 2008 г.) - визуальный веб-экспресс (бесплатная сокращенная версия) также может иметь те же возможности, но никогда не пробовал с этим
Я могу повторить одни и те же шаги несколько раз и не получить ошибок, но тогда, по-видимому, случайно я получу зависание браузера. Я предполагаю, что то, о чем я прошу, - это хорошая стратегия для отслеживания ошибки и ее устранения, когда я не могу легко ее воспроизвести. Я надеялся, что есть способ поймать глобальное зависание.
Я могу повторить одни и те же шаги несколько раз и не получить ошибок, но тогда, по-видимому, случайно я получу зависание браузера. Я предполагаю, что то, о чем я прошу, - это хорошая стратегия для отслеживания ошибки и ее устранения, когда я не могу легко ее воспроизвести. Я надеялся, что есть способ поймать глобальное зависание.