- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Хочу попробовать реализовать шаблонизатор на основе базы данных. Практически, переизобрести Веб. Идея такова.
1. При запросе страницы /index, node.js отдает только head, из которого исполняется init.js (пользовательский скрипт на стороне клиента).
2. init.js запрашивает GET /index?init.
3. node.js проверяет наличие страницы в таблице page.
4. node.js запрашивает записи из таблицы node, где `node`.`page` FK `page`.`uri` = index, а `node`.`parent` = 'body'.
5. node.js что-то достает из базы данных и отдает объекты первого уровня вложения в <body> в таком виде: [header: [class: ['header', 'object`]], main: [class: ['main'], role: 'main', id: 'main']]. Объект кэшируется в ОЗУ и в следующий раз просто возвращается объект node.js.
6. Запрос кешируется на стороне клиента и в следующий раз init.js запросит /index?init уже с заголовком If-Modified-Since.
7. init.js строит DOM из полученных объектов и запрашивает следующий уровень для каждого из. Например, GET /index?header.
8. node.js отдает каждый из блоков, как в пункте 5.
В чем смысл:
1. Сделать HTML более ООП.
2. Кэшировать страницу по элементам, стили по классам (запросы кэшируются, какие-то данные можно кэшировать в indexedDB).
3. Передавать блоки параллельно по одному постоянному подключению, используя HTTP/2.
4. Вместо интервальной проверки изменений в блоках на стороне клиента, посылать новые блоки из сервера используя HTTP/2.
5. Возможность просматривать страницу без подключения к Интернету.
И многое другое.
Вопросы:
1. Как лучше хранить DOM. Как лучше хранить шаблон-выборку из DOM элементов (планирую в indexedDB на стороне клиента)?
2. Будут ли поисковые системы индексировать такие страницы, загружаемые посредством AJAX?
3. Как хранить innerText, ведь посередине него может быть вставлен блок?
4. Дублировать ли блоки для каждой из страниц или сохранять только оригинальны?
5. Насколько для такой задачи подходит mySQL? Можно ли заменить на indexedDB с последующим кэшированием в объекты на стороне сервера?
6. Сможет ли node.js обрабатывать по скажем 100 000 запросов блоков от 1000 клиентов в секунду? Какая конфигурация сервера нужна?
7. Встает вопрос, как же хранить динамические значения. А что если, например, к node.js подключить webkit и полученный из базы блок сразу же вставлять в body. К блокам, в которые нужно вставить динамическое значение добавлять атрибут data-post-action. И отлавливать событие создание DOM блока с определенными data-post-action?
Нормально, вместо одного запроса будет 10, или 20, смотря по обстоятельствам непреодолимой силы. Между тем современные тренды трындят наоборот: зачем мучить сервер запросами на микроскопические куски текста, если можно все сразу отдать.
---------- Добавлено 14.08.2015 в 18:23 ----------
Практически, переизобрести Веб
В смысле вывернуть его наизнанку. Все что вы описываете как сценарий обмена между браузером и сервером делается на сервере, потому что заранее известно все что нужно сделать. Ну вообще все известно заранее. Только когда вы все отдали, юзер осмотрел, поскрипел мозгами и сгенерировал событие - заранее неизвестное - только тогда в ответ на это событие сервер выдает что-то еще, или браузерный скрипт, если ему хватает данных, реагирует.
---------- Добавлено 14.08.2015 в 18:27 ----------
Или я что-то не понял?
5. Возможность просматривать страницу без подключения к Интернету.
Вы в LocalStorage что ли хотите кешировать куски хтмля?
Может..Не надо лезть туда,куда не надо лезть..Это к "Практически, переизобрести Веб"