Почему иногда мое веб-приложение EXTJS перестает отвечать на запросы Chrome

Мы сталкиваемся с некоторыми странными проблемами с нашим веб-приложением, когда мы запускаем его в Chrome. Все операции с приложением выполняются, как и ожидалось, но в некоторые дни, когда мы выполняем самые основные и общие функции приложения, chrome начинает отображать это всплывающее сообщение: - "Следующая страница перестала отвечать. Вы можете подождать, пока она не станет реагировать или убить его. С двумя вариантами подожди и убей ".

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

Небольшой фон приложения: 1. Аналитическое приложение, поэтому имеется несколько вкладок с несколькими диаграммами и сетками на каждой вкладке. 2. DOM интенсивное приложение с операциями с большими данными. 3. Разработано с использованием EXTJ -4.2 для полного пользовательского интерфейса и JAVA для внутреннего интерфейса. 4. CometD в качестве сервера обмена сообщениями. 4. Приложение, развернутое на сервере Jetty.

Таким образом, мы выяснили несколько областей, которые могли вызывать проблемы, но трудно определить точную причину. Возможные проблемные области: 1. Рендеринг диаграмм, сеток и других компонентов пользовательского интерфейса на Chorme. 2. Медленный интернет или сеть приложением. 3. Тяжелый запрос к серверу и тяжелый ответ от сервера.

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

2 ответа

Вам нужно профилировать клиентское приложение и посмотреть, какой сценарий занимает так много времени и почему.

Chrome, Firefox и т. Д. Предоставляют хорошие инструменты разработчика для профильных сценариев, поэтому должно быть легко понять, что происходит, см., Например, https://developers.google.com/web/tools/chrome-devtools/rendering-tools/,

Можно предположить, что если сервер отвечает с большим количеством данных, обработка занимает много времени, поэтому Chrome жалуется.

Вы должны изучить обработку данных в веб-работниках и / или использовать setTimeout для пакетного обновления пользовательского интерфейса, см. также:

Чтобы избежать диалога "скрипт слишком длинный", нужно ли разделить свою функцию и запускать ее через определенные промежутки времени?

Как предотвратить "Прекратить запуск этого скрипта" в браузерах?

Это также происходит, если вы делаете синхронные вызовы сервера, которые занимают больше времени.

Другие вопросы по тегам