Как мне диагностировать проблемы с производительностью веб-страницы, если ни одно из моих событий JavaScript не является причиной?
У меня есть веб-приложение, использующее jqGrid . Нажатие на сетку вызывает 2-3-секундное замораживание, прежде чем что-либо случится (включая любые события щелчка, которые были поражены). Кликнув в любом месте на странице, это хорошо (мгновенный ответ). Удаление строк уменьшает задержку (50 строк очень медленные, но 5 строк дают мгновенный ответ).
Отмена привязки всех событий на странице à la $('*').add(document).unbind()
не устраняет проблему, что заставляет меня поверить, что есть события, которые я пропускаю.
Я не вижу такого медленного поведения, если я сохраняю исходный код страницы на своем рабочем столе и открываю этот HTML-файл в своем браузере. Похоже, это указывает на то, что на самом деле это проблема JavaScript.
Я тестирую Firefox 3.6.8 и последнюю версию Firebug. Эта проблема также затрагивает другие браузеры, но не так быстро в быстрых (Safari и Chrome).
Обновление : IE7, похоже, не страдает от этой задержки, как ни странно. Я поместил предупреждение в самом начале события щелчка jqGrid, и окно события появилось сразу после того, как я нажал на сетку. Firefox по-прежнему имеет мультисекундную задержку, а Chrome и Safari имеют очень короткую задержку (не такую короткую, как в IE, но все еще очень короткую).
Обновление № 2 : Я вполне уверен, что это может быть ошибка в Firefox. Несмотря на то, что я отменяю / умираю во всех событиях, я предполагаю, что Firefox не очищает все должным образом. Я удалил все остальные события и добавил одно событие щелчка в таблицу сетки и запустил профилировщик. Затем я щелкнул один раз на столе и завершил работу профилировщика. Я получил "Нет активности в профиле". сообщение.