InstantClick — JS-библиотека, ускоряющая загрузку страниц
InstantClick — это библиотека JavaScript, которая значительно ускоряет работу сайта. Таким образом, навигация по сайту превращается в одно удовольствие.

Причина

Несмотря на огромный рост пропускной способности, сайты не стали работать быстрее. Всё дело в задержке их загрузки — самом узком месте быстродействия.

Как работает InstantClick

Избежать задержек в рамках нынешней архитектуры интернета практически невозможно, однако InstantClick обходит их при помощи предварительной загрузки ссылки, на которую пользователь вероятнее всего кликнет.

Прежде, чем кликнуть по ссылке, пользователи наводят на нее курсор и «парят» над ней в течение 200–300 миллисекунд (проверьте себя здесь). InstantClick использует часть этого времени, и к тому моменту, когда пользователь нажимает на ссылку, контент уже загружен.

Если вы хотите, чтобы ваш сайт не был перегружен запросами, просто установите паузу между наведением на ссылку и загрузкой контента: пользователь всё равно будет мгновенно переходить по нужным ссылкам.

Если вы не хотите, чтобы запросы отправлялись впустую, можно сделать подгрузку на событие «mousedown» — когда пользователь нажал кнопку мыши, но ещё не отпустил.

InstantClick использует PushState и Ajax. Их применение в паре называют pjax.

У Ajax есть два неоспоримых преимущества:

Вашему браузеру не приходится переинициализировать скрипты и стили после каждого изменения на странице.

Вы не смотрите на пустой экран, пока ждёте загрузки сайта.

Если ваш браузер не поддерживает PushState, InstantClick не будет работать.

Приступая к работе

Инструкции и линки на скачивание здесь.

Что это даст в конечном итоге

В порядке убывания приоритета:
  • Предварительная загрузка на «touchstart» — позволяет использовать подгрузку и на мобильных устройствах.
  • Добавление прогресс-бара (в духе NProgress) — для пользователей с медленным соединением.
  • Получение статистики о том, насколько InstantClick грузит сервер.
Александр руководитель проектов

Проблема скорости загрузки веб-страниц еще не скоро исчезнет: каналы расширяются, но и сайты утяжеляются. Кто-то решает проблему, используя прелоадеры, а кто-то изобретает инструменты типа InstantClick :)

Вы можете следить за новостями InstantClick в Twitter, или участвовать в разработке InstantClick на GitHub.

Оригинал: instantclick.io