Как стать автором
Обновить

Используете test.php на своем сайте и Google Chrome?

Время на прочтение 1 мин
Количество просмотров 36K


Про test.php уже была интересная статься хабре. Но в этом небольшом топике я расскажу об одной особенности Google Chrome, которая может подпортить жизнь владельцам test.php.

Работая с очередным веб-приложением я наткнулся на странный баг: открываешь в Google Chrome скрипт http://example.com/test.php, а он выполняется несколько раз. Причина оказалась в стандартных настройках Google Chrome, а точнее во включенной опции «Предсказывать сетевые действия для ускорения загрузки страниц».

Среди прочего, она позволяет хрому заранее загружать и рендерить веб-страницу еще до нажатия Enter в омнибоксе (адресной строке), тем самым создавая видимость мгновенной загрузки. Здесь пишут, что функция работает для часто посещаемых страниц (возможно достаточно хотя бы раз посетить страничку, чтобы она осталась в истории омнибокса), test.php у разработчиков часто подходит под этот критерий :)

Неприятная особенность данной функций заключается в том, что если страница успела загрузиться до нажатия Enter, все работает как следует, и страница отображается мгновенно после ввода. Однако если test.php загружается дольше, чем время между отображением подсказки в омнибоксе и переходом на страницу, после нажатия Enter страница будет загружена повторно.

Таким образом, тяжелые, долго выполняющиеся скрипты (например, обновляющие значение поля в очень большой таблице базы данных) могут быть вызваны несколько раз.

Решение простое: в опциях убрать галочку с «Предсказывать сетевые действия для ускорения загрузки страниц»:



Возможно, данная проблема есть и у других современных браузеров с «умной» адресной строкой. Также стоит отметить, что у меня предзагрузка не отображалась во вкладке «Network» в «Developer Tools».
Теги:
Хабы:
+31
Комментарии 28
Комментарии Комментарии 28

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн