Предзагрузка страниц
В общем, наткнулся на интересную презентацию, которая говорит о том, как можно ускорить подгрузку страниц. Небольшое видео о том, как это работает в 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?)
- Больший расход траффика на мобильных устройствах (опционально)