- PVSM.RU - https://www.pvsm.ru -
Про test.php уже была интересная статься [1] хабре. Но в этом небольшом топике я расскажу об одной особенности Google Chrome, которая может подпортить жизнь владельцам test.php.
Работая с очередным веб-приложением я наткнулся на странный баг: открываешь в Google Chrome скрипт http://example.com/test.php [2], а он выполняется несколько раз. Причина оказалась в стандартных настройках Google Chrome, а точнее во включенной опции «Предсказывать сетевые действия для ускорения загрузки страниц».
Среди прочего, она позволяет хрому заранее загружать и рендерить веб-страницу еще до нажатия Enter в омнибоксе (адресной строке), тем самым создавая видимость мгновенной загрузки. Здесь [3] пишут, что функция работает для часто посещаемых страниц (возможно достаточно хотя бы раз посетить страничку, чтобы она осталась в истории омнибокса), test.php у разработчиков часто подходит под этот критерий :)
Неприятная особенность данной функций заключается в том, что если страница успела загрузиться до нажатия Enter, все работает как следует, и страница отображается мгновенно после ввода. Однако если test.php загружается дольше, чем время между отображением подсказки в омнибоксе и переходом на страницу, после нажатия Enter страница будет загружена повторно.
Таким образом, тяжелые, долго выполняющиеся скрипты (например, обновляющие значение поля в очень большой таблице базы данных) могут быть вызваны несколько раз.
Решение простое: в опциях убрать галочку с «Предсказывать сетевые действия для ускорения загрузки страниц»:
Возможно, данная проблема есть и у других современных браузеров с «умной» адресной строкой. Также стоит отметить, что у меня предзагрузка не отображалась во вкладке «Network» в «Developer Tools».
Автор: globik
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/google-chrome-2/67124
Ссылки в тексте:
[1] интересная статься: http://habrahabr.ru/post/108152/
[2] http://example.com/test.php: http://example.com/test.php
[3] Здесь: http://readwrite.com/2012/01/05/new_chrome_will_load_web_pages_before_you_hit_ente
[4] Источник: http://habrahabr.ru/post/232787/
Нажмите здесь для печати.