Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

ajax чат и как с ним быть

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#1
В общем проблема таковы. Файл, контролирующий модуль находится в шаблоне - это не хорошо. Шаблон менять нельзя - тоже не хорошо. Как это можно решить? А вот так.

В общем думаю что можно сделать вот так.

Решаем проблему скриптов.
chat.js 100% нужно вывести в modules/chat/ и выводить его автоматически в начало документа где есть метка {{ fps_chat }} или если это main модуля чат  (тоесть в шаблоне list.html его нет, но после парсинга он появляется в начале документа)

А вот js скроллер и его css останутся в шаблоне, а также chat.css . Их мы так и будет подключать сами в list.html. Ибо это именно визуальная часть.

Решаем проблему изменения шаблона выводимых сообщений.
HTML для сообщений перед загрузкой страницы чата брать из list.html внутри  {% for in %}  ну или если это будет проще создать то material.html где не будет {% for in %}. Изменяемые части выводить привычными метками, но уже эти метки будет обрабатывать не php парсер, а js парсер. Наверно метки лучше будет использовать такие же как и были в старом чате.

messages
message.user_id
message.ip
message.del
message.time
message.name
message.message
messages.user_avatar(если js пасрер)

Не знаю можно ли так... но наверно можно даже взять этот html и прогнать через php парсер и вывести ajaxом?

Отредактировано автором 4 Янв 2014
Соразработчик Atom-M CMS

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#2
boriska пишет:
Как это можно решить? А вот так.В процессе...
заинтриговал))))

Mishka

  • Свой человек
  • Юзер
  • 90
  • Репутация:9 
  • Предупреждения: 0 
  • Регистрация:
    24 Дек 2011
#3
ждем:)

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#4
В общем думаю что можно сделать вот так.

Решаем проблему скриптов.
chat.js 100% нужно вывести в modules/chat/ и выводить его автоматически в начало документа где есть метка {{ fps_chat }} или если это main модуля чат  (тоесть в шаблоне list.html его нет, но после парсинга он появляется в начале документа)

А вот js скроллер и его css останутся в шаблоне, а также chat.css . Их мы так и будет подключать сами в list.html. Ибо это именно визуальная часть.

Решаем проблему изменения шаблона выводимых сообщений.
HTML для сообщений перед загрузкой страницы чата брать из list.html внутри  {% for in %}  ну или если это будет проще создать то material.html где не будет {% for in %}. Изменяемые части выводить привычными метками, но уже эти метки будет обрабатывать не php парсер, а js парсер. Наверно метки лучше будет использовать такие же как и были в старом чате.

messages
message.user_id
message.ip
message.del
message.time
message.name
message.message
messages.user_avatar(если js пасрер)

Не знаю можно ли так... но наверно можно даже взять этот html и прогнать через php парсер и вывести ajaxом?

Соразработчик Atom-M CMS

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#5
boriska, чтобы использовать list.html нужно сообщения отправлять не как сейчас, в виде только самих данных, а рендерить в php скрипте и отсылать уже готовый html код.
Я специально от этого отказывался, ведь тогда отправляется масса повторяющегося ненужного кода, а это очень критично на трафике, когда это чат, особенно.

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#6
Сашка_из_Шебекино, зачем? Просто загрузка идет только первый раз(при загрузке чата вместе со страницей) В этот момент загружается шаблон, сохраняется html для сообщений и потом уже(если не перезагружать) то ничего там кроме самих данных не трогается. Ну и нужно будет заменять метки. Это можно думаю либо сделать просто заменой, но если нужны условники придется попыхтеть. А так просто будет еще одна функция загружаться при загрузке чата.

Соразработчик Atom-M CMS

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#7
тоесть рендерить html из файла средствами js?

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#8
Сашка_из_Шебекино, угу.

Соразработчик Atom-M CMS
1
Сейчас online: 193. Зарегистрированных: 1. Гостей: 192.