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

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

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

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

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

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


person Rahul    schedule 29.11.2016    source источник


Ответы (2)


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

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

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

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

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

Как предотвратить остановку выполнения этого скрипта в браузерах?

person sbordet    schedule 29.11.2016

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

person Harshal    schedule 30.11.2016