Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-10-15 18:15:09 ЛС | профиль | цитата
Stasie, технология немного сложнее:

Форум состоит из трех основных частей: серверной части(forum_serv.sha), и двух клиентских - шаблоны(forum_tpl.sha) и общие функции(tools.sha).
Что происходит, когда пользователь заходит на страницу forum.heml?
1) из tools.sha вызывается ф-ция req_serv() с запросом данных на сервер, которая как раз и является оберткой XMLHttpRequest.
2) сервер(в лице forum_serv.sha) получает запрос и выдает по нему набор команд, пример которых можно посмотреть скажем тут: http://hiasm.1gb.ru/forum_serv.php?q=1 (после перехода по ссылке нужно открыть исходный текст страницы иначе будет ничего не понятно).
3) полученный ответ передается опять в tools.sha, где происходит разбор команд. Одной из таких команд является, например, команда set с синтаксисом:
(set)[tab](element)[tab](template)[tab](param list)...
где element это id элемента HTML в DOM структуре документа
template - вот это как раз то самое имя глобальной переменной из forum_tpl.sha
param list - нефиксированный список параметров, на которые заменяются в шаблоне значения %1, %2, ... %№. Если после % идет префикс b, то такой параметр к тому же предварительно парсится ф-цией bbcode.

Поскольку все это сделано на javascript, то в любой момент времени после загрузки страницы можно получить доступ к элементам ядра, написав скажем в строке браузера следующую команду:
javascript: alert(easy_link)
- выведет диалог с содержимым переменной easy_link из forum_tpl.sha

Ну и наконец главная фишка состоит в том, что определяя весь интерфейс и часть ф-ности форума всего одним файлом мы получаем возможность подключать forum_tpl.sha не с сервера, а с локального диска пользователя, который может изменить его как угодно.
------------ Дoбавленo:

собственно если померить размер данных, который передается пользователю при заходе на главную страницу форума(с учетом кеша статических файлов). т.е. по ссылке http://hiasm.1gb.ru/forum_serv.php?q=1, то получим всего 3.72Кб. Если сравнить со старым форумом http://hiasm.1gb.ru/xf/, размер которого 18.9Кб, то получим выигрыш в 5 раз.
карма: 27
0