Азбука/Библия

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

Примерная схема работы

http://azbyka.ru/biblia/?Jer.10:21,23:1&acgr

По этому запросу показывается книга пророка Иеремии, глава 10 стих 21 и глава 23 стих 1, на четырёх языках.

Недостатки

  • загружается полный текст глав, просто показывается только указанный стих
  • язык кодируется одной буквой алфавита; при этом порядок букв ни на что не влияет
  • полученная страница имеет expires -1, то есть никто никогда её не закэширует
  • список стихов и глав может быть длинным, это даёт возможность формировать совершенно любые ссылки
  • каждая такая страница формируется очень долго (от секунды до десятков секунд)
  • индексирование поисковиками требует выделенного сервера только на Библию
  • нет никакой связи с текстами, отдаваемыми в качестве подсказки через плагин WP на ajax.abzyka.ru

Некоторые соображения, как это должно быть сделано

1. Отдельные страницы для каждой книги, каждой главы на каждом языке:

http://azbyka.ru/biblia/?Jer.10&a

(способ кодирования языка обсуждается, поскольку это не совсем язык, а некая аббревиатура для языка книги).

На эти страницы ссылается оглавление, они включаются в sitemap и их индексирует браузер. Цель этих страниц — засветиться в поисковике. Они возвращаются с указанием, что их можно кэшировать надолго, они не меняются и их можно сохранить в базе или memcached уже сформированными.

Количество этих страниц ограничено и заранее известно (нет динамического ответа).

2. Для показа отдельных стихов, глав, наборов книг

Отдельная страница, показывающая нужные стихи с помощью AJAX.

Как я понимаю, это может быть тот же URL

http://azbyka.ru/biblia/?Jer.10:21,23:1&acgr

Только в ответ сервер возвращает всегда одну и ту же статическую страницу (с оформлением), которая подключает js-файл, обрабатывает параметры, и подгружает через AJAX нужные тексты.

Этим можно обеспечить динамичность, быстрый ответ и любое сочетание параметров.

Сервер для отдачи текстов

Сервер для отдачи текстов по запросу должен быть создан на nodejs, с хранением базы в redis (которые заполняется из mysql или файлов). Это позволит обеспечить тысяч запросов за текстами в секунду.