- PVSM.RU - https://www.pvsm.ru -
Чтобы сделать эту небольшую статью намного интереснее, я предлагаю просто открыть результаты поиска Google [1] и сразу вернуться к чтению под катом.
Скорее всего, первым результатом вашей выдачи стал Amazon.com, страницу которого браузер любезно предзагрузил:

Теперь зайдя на Amazon.com [2], мы обнаружим кучу сладостей в блоке «Вы смотрели» и «Похожие продукты»:

Да, Amazon посчитал, что это пользователь зашёл на страницу продукта и стал показывать подходящие рекомендации. «Беспокоящиеся» могут писать об утечке данных о поиска, но меня больше волнует веб-аналитика и разработка.
На мой взгляд, prerender [3] — хорошая штука, но она имеет побочные эффекты, о которых теперь стоит задумываться при разработке проектов.
Итак, Wireshark показал, что бэкенд не сможет отличить prerender-запрос от обычного, поэтому, как минимум, серверные логи могут считать «мёртвых душ» — посетителей, которым показали сайт первым результатом, но фактического перехода не было. Так как аналитика реализована на бэкенде, то мы получили неожиданные рекомендации, но можно ли решить проблему при помощи фронтенда?
Да, в Javascript можно использовать Page Visibility API [4], который подскажет состояние страницы: document.visibilityState = 'prerender'. Таким образом, трекеры и счётчики могут дождаться момента первого явного отображения страницы и, в результате, аналитика и рекомендации вполне корректны.
Возможно есть и другие решения, которые я буду рад прочесть в комментариях.
Автор: javascript
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/29707
Ссылки в тексте:
[1] результаты поиска Google: https://www.google.com/search?q=Hershey's+Easter+Candy+Assortment+(Hershey's+Kisses%2C+Reese's+Miniatures+%26+Hershey's+Miniatures)%2C+24-Ounce+Bags+(Pack+of+2)
[2] Amazon.com: http://www.amazon.com/
[3] prerender: https://developers.google.com/chrome/whitepapers/prerender
[4] Page Visibility API: https://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API
[5] Источник: http://habrahabr.ru/post/173201/
Нажмите здесь для печати.