Механизм prerender (pre-предварительно, render - отрисовка), который лучше всего можно описать комплексом слов - предварительная загрузка и последующая предварительная отрисовка страниц, разработан в качестве экспериментальной функции и предназначен в первую очередь для сайтов, позволяя существенно ускорить загрузку следующей страницы за счёт фоновой загрузки страницы и последующей её отрисовки.
Данная возможность в первую очередь, по мнению разработчиков, пригодится для веб-контента, расположенного сразу на нескольких страницах, поэтому при просмотре первой страницы материала пользователь скорее всего нажмёт кнопку Далее, поэтому в фоновом режиме можно подгрузить вторую страницу и так далее, пользователь получит контент намного быстрее.
Каким образом работает prerender - допустим на сайте присутствует большой материал, разбитый на несколько страниц - страница 1, 2 и 3, пользователь заходит на страницу 1, где присутствует специальный тег link со значением rel="prerender", браузер получает данные из этого тега и загружает страницу 2 (указанную в свойстве href) в фоновой вкладке, если пользователь продолжает читать материал и нажимает по ссылке Далее (страница 2), то пользователю моментально будет показана фоновая вкладка с уже загруженной страницей.
Возможность использования предзагрузки доступна через тег link с установленным значением rel="prerender", полное описание выглядит следующим образом:
<link rel="prerender" href="http://example.org/index.html">
Браузер Google Chrome анализирует страницу после загрузки или обрабатывает её позже (при анализе JavaScript-кода), находит данный тег и исполняет действие предзагрузки следующей страницы.
При этом могут возникнуть обстоятельства, при которых предзагрузка страницы не будет совершена:
- Пользователь использует версию Chrome, где предзагрузка не включена по умолчанию.
- Пользователь отключил предзагрузку, сменив состояние пункта "Predict network actions to improve page load performance" в настройках.
- Уже одна страница загружена в режиме предзагрузки. На данный момент браузер использует только одну ссылку для предзагрузки на каждый экземпляр браузера. Это ограничение может быть изменено в будущем.
- На странице присутствует сразу несколько директив prerender, в таком случае остальные директивы будут проигнорированы или неопределены (в зависимости от времени когда директивы были найдены).
- Браузер нашёл другую директиву prerender в течение последних 500 мс. встречается другой PreRender директивы в течение последних 500 мс.
- Обрыв получения страницы на основе ситуации, когда страница уже загружается в активном режиме.
Для предотвращения устаревания предзагруженной страницы если пользователь не нажмёт по ссылке страницы в течение 30 секунд, то страница будет удалена из памяти. Данный лимит времени может быть изменён в будущем.
Предзагруженные страницы будут отображаться особым образом в менеджере вкладок (специальная иконка):
Возможности prerender можно включить в Google Chrome 13 через настройки, отметив пункт "Predict network actions to improve page load performance". А также с помощью запуска браузера с добавлением специального ключа: --prerender=enabled