@belyaevcyrill

Как правильно организовать подгрузку большого количества текста?

Есть некая многотомная html-книга. У неё есть index-файл, в котором находится оглавление. И много файлов с именем tom-1.html, tom-2.html и т.д. Каждый такой файл имеет огромный текстовый объём. Если его сразу открыть в браузере, то любой браузер вешается и перестаёт отвечать.

Какие существуют готовые решения на PHP и JavaScript для того, чтобы в браузере грузился не сразу весь том (tom-1.html и т.д.), а была подгрузка по мере прокрутки мыши?

Да, это можно и самому реализовать на jQuery и PHP. Но как это сделать оптимальнее? На PHP я написал скрипт, который читает с помощью fseek файл тома и выдаёт контент по мере прокрутки. Позицию каждой "подгрузки" скрипт записывает в сессию, чтобы знать откуда продолжать "подгружать" при следующем прокручивании колеса мыши. Но при прокручивании до конца, начинаются тормоза. Как сделать, чтобы из любого участка огромного тома нужный фрагмент html-текста показывался одинаково быстро?

И ещё момент. Каждый том содержит много html-тегов (жирный текст, курсив и т.д.). Как правильнее реализовать механизм "закрывания" тегов? Ведь тег может быть в теге. Нужно учесть глубину вложения тегов. И для каждого прописать закрывающий тег...

Заранее спасибо!
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
То что Вы ищите это 2 разных решения: пагинация + ленивая загрузка.
Поиск знает кучу готовых скриптов:
js plugin pagination
js plugin lazyload

И ещё момент. Каждый том содержит много html-тегов (жирный текст, курсив и т.д.). Как правильнее реализовать механизм "закрывания" тегов? Ведь тег может быть в теге. Нужно учесть глубину вложения тегов. И для каждого прописать закрывающий тег...

Не надо закрывать, надо просто не резать теги. Отсчитали 1000 символов, проверили, сколько не закрыто, дождались закрытия, отсекли. На деле механизм не простой, куча нюансов, так что проще взять готовое.
Ответ написан
Serhioromano
@Serhioromano
Web Developer
Извините, не совсем ответ на вопрос, но почему не использовать готовые решения как например Gitbook? Там простой интерфейс писать книгу. В браузере все разбито по разделам и подгружается переходами по страницам и автоматически генерируется PDF, DJVU.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы