Skip to content

Предзагрузка страниц

В общем, наткнулся на интересную презентацию, которая говорит о том, как можно ускорить подгрузку страниц. Небольшое видео о том, как это работает в Google: youtube.

Технология не нова, но в двух словах она описывается так: браузер отправляет запросы в ISP DNS перед тем, как пользователь введёт конечный сайт в адресной строке (предсказание на основе предыдущих запросов). Далее этап prefetching, когда можно отправить запрос, установить соединение с сервером, подгрузить контент; например, можно реализовать такое, когда пользователь только навёл на ссылку, но ещё в течение 300-500 миллисекунд думает, нажать ли на неё. Следующий этап это prerender, когда помимо загрузки контента можно его и обработать.

Вот меня интересует prefetch, что-то подобное реализовывает js-библиотека instant click (можно пощупать, очень быстро), но здесь как бы поддержка и во всех современных браузерах. Выглядит так:

<link rel="prefetch" href="output.html">
<link rel="prefetch" href="other-style.css">

Такое можно однозначно положить на страницу для гостей (sign/in), которая с авторизацией. Раз пользователь зашёл на сайт, то он сначала загрузит минимальный набор файлов для отображения страницы с авторизацией, prefetch подгрузит остальные файлы, которые ему понадобятся уже на главной (index).

Такое можно, наверное, положить на index, где выводится список предметов. У студентов префетчить подробные карты дисциплин, а у преподавателей префетчить страницы с выставлением оценок.

На странице выставления оценок префетчить страницу с оценками на экзамене.


Плюсы:

  • Быстрая прогрузка страниц (если не мгновенная)
  • Проста в реализации, не требует лишних телодвижений

Минусы:

  • Бóльшая нагрузка на сервер (загружается не одна страница, а 2-3?)
  • Больший расход траффика на мобильных устройствах (опционально)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information