home

Оптимизация скорости генерации страниц книги

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

Упреждающее кеширование страниц[править]

Особенность ELiS - генерация страниц в адаптированном разрешении при первом обращении. Такой подход приводит к медленному отображению страницы при первом обращении т.к. происходит длительный процесс рендеринга и ресайзинга страницы. Чтобы уменьшить отрицательное влияние от такой генерации, в ELiS добавлен механизм упреждающего серверного кеширования страниц. Система работает очень просто - когда пользователь запрашивает страницу, после выдачи ему страницы сразу запускается процесс генерации соседних страниц в запрошенном пользователем разрешении. При перелистывании, если страницы к этому моменту успеют сгенерироваться, пользователю будет отправлена готовая страница уже через 35-150 мс.

Упреждающее кеширование существенно понижает время ожидания следующей страницы. Кроме того, упреждающее кеширование увеличивает и скорость скачивания книги в приложениях ELiS.

Ограничение технологии: упреждающее кеширование не активируется если для книги включено наложение водяного знака.

В процессе подготовки находится статья, в которой будет проведено тестирование скорости доставки страниц в ELiS, Xerox DocuShare и НЭБ.

Поддержка WebP[править]

В ELiS используется рендеринг PDF на стороне сервера. Отрендеренные страницы отдаются в виде рисунков в одном из форматов. Ранее в ELiS использовался формат PNG как компромисс между объемом и качеством. Если сравнивать PNG и JPEG, то PNG больше подходит для текстовых PDF, а JPEG для оцифрованных книг с цветными страницами. Соответственно, раньше в ELiS оцифрованные книги были существенно большего размера, чем могли бы, если бы использовался JPEG. "Существенно большего" - это в 3-6 раз. Вместе с тем, использование в качестве формата JPEG привело бы к плохой читаемости текстовых PDF из-за артефактов сжатия и к увеличению размера текстовых страниц в 2-3 раза.

В июльском обновлении ELiS сделаны две инновации:

  1. ELiS теперь сама определяет является ли книга оцифрованной или текстовой и отдает страницы в оптимальном по объему и качеству формате: PNG для текстовых и JPEG для оцифрованных книг.
  2. Для браузеров с поддержкой WebP (Chrome, Android, Opera) вместо JPEG страницы отдаются в WebP, что позволяет сократить объем передаваемого трафика для оцифрованных книг на 20-25%.