Я тестирую свой сайт Gatsby и обнаружил ряд действий, которые приводят к его зависанию в браузере.Под «зависанием» я подразумеваю, что браузер пытается загрузить сайт, на экране ничего нет, а индикатор выполнения достигает примерно 75% и останавливается.
Я использую gatsby-plugin-offline и подозреваю, что егооднако проблему с работником службы трудно понять наверняка.
Мне удалось воспроизвести это зависание только на Android с помощью Chrome.Chrome на рабочем столе не имеет никаких проблем, как и Firefox на Android.Я думаю, что это как-то связано с тем, как Chrome возобновляет работу.
Шаги для воспроизведения
- Открыть Chrome
- Перейдите на сайт напрямуюнабрав url
- Kill Chrome
- Открыть Chrome
Когда я снова открываю Chrome, он пытается перезагрузить сайт, так как он был открыт, когда я убил приложение, и этоВот где он зависает.
Если я подожду достаточно долго (около 5 минут), сайт перестанет пытаться загрузиться, но экран все еще будет пустым.Кажется, наступил тайм-аут.На данный момент я могу просматривать консоль с помощью инструментов удаленной отладки в Chrome на моем рабочем столе.До этого момента, пока он все еще зависает, я могу подключиться к телефону с помощью удаленного отладчика, но браузер не обнаружен, отчасти поэтому это было так сложно выяснить.Когда я смотрю на консоль в удаленном отладчике, это показывает, что несколько ресурсов не удалось загрузить.Они не всегда одни и те же, которые терпят неудачу, однако некоторые распространенные включают следующее:
Все четыре из этих элементов находятся в кэшеа также присутствует на соответствующем хосте.Первые три элемента настроены как элементы предварительного кэширования для WorkBox.
Заключительные замечания: На вкладке сети отладчика нет ничего, кроме того, что я упомянул выше с консоли.Если я обновлю сайт, пока он висит или в любое время, он работает.Обновление всегда работает, только когда Chrome впервые открывается, сайт зависает.
Действительно странные вещи.