Перейти к содержимому


Пользователь месяца
OlgaGetman OlgaGetman 1-й за Декабрь
Очков активности: 2100 10 тем, 170 сообщений, 7 баллов репутации
ТОП самых активных за этот месяц
  • Фотография Ixman
    #1

    Ixman (o5cat.ru)
    Очков активности: 346.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #2

    BLIK
    Очков активности: 165 0 тем, 22 сообщения, 5 баллов репутации

  • Фотография Андрей WPMasterKZ
    #3

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 153 Вне конкурса за определение пользователя месяца

  • Фотография OlgaGetman
    #4

    OlgaGetman
    Очков активности: 106.5 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #5

    magnet (rbfxdirect.com)
    Очков активности: 63 0 тем, 14 сообщений, 3 балла репутации

  • Фотография Cheaplinks
    #6

    Cheaplinks (cheaplinks.pro)
    Очков активности: 63 0 тем, 21 сообщение, 2 балла репутации

  • Фотография Mandarin
    #7

    Mandarin
    Очков активности: 61.5 0 тем, 41 сообщение, 1 балл репутации

  • Фотография TimurR
    #8

    TimurR
    Очков активности: 54 Вне конкурса за определение пользователя месяца

  • Фотография Ilya74
    #9

    Ilya74
    Очков активности: 51 0 тем, 17 сообщений, 2 балла репутации

  • Фотография r0mZet
    #10

    r0mZet (rz-style.ru)
    Очков активности: 49.5 0 тем, 11 сообщений, 3 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 25.12.2018
  • Яндекс выдача: 22.01.2019
Топ 5 участников по репутации


Ajax окно чата

#1 Scream

Scream
  • Неактивные
  • 42 сообщений
  • Репутация: 0
0

Отправлено 05 May 2010 - 14:36

Как на ajax можно реализовать такое, чтоб когда в таблице бд появляется новая запись - чтоб эта запись выводилась как в окне чата.
На пример "Быстрые сообщения" вконтакте. Приходит сообщение - оно появляется под остальными сообщениями.

 

 

  • 0

#2 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 05 May 2010 - 15:08

А там должен, я так думаю, таймер стоять, который через определенное время просто обновляет блок или фрейм. В контакте они тоже приходят не мгновенно. Все зависит от периода обновления.
Я прав? Или поправьте меня.
  • 0

#3 reaboom

reaboom
  • Неактивные
  • 40 сообщений
  • Репутация: 0

Отправлено 05 May 2010 - 18:12

Прав :(


  • 0

#4 Scream

Scream
    Topic Starter
  • Неактивные
  • 42 сообщений
  • Репутация: 0

Отправлено 05 May 2010 - 20:59

Прав, но как это реализовать через JS не использую iframe?
  • 0

#5 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 08 May 2010 - 20:41

Scream, Ajax + XML или JSON

1) Ставим запуск функции каждые 30 секунд, можно на основе setInterval()
2) Функция делает запрос на поиск новых сообщений, в качестве параметра она должна передавать на сервер id последнего сообщения которое отображено на странице
3) Получаем ответ от сервера в строго-структурированном формате, либо XML, либо JSON, либо любой другой, который понимает JS.
4) Разбираем ответ посредством JS, он умеет работать с XML и другими форматами. Не забываем из полученных данных занести в глобальную переменную или куда ещё значение id последнего сообщения. Нужно дял последующих сообщений.
4) Добавление сообщения реализуется на DOM-модели или юзаем фреймверки.
  • 0

#6 Scream

Scream
    Topic Starter
  • Неактивные
  • 42 сообщений
  • Репутация: 0

Отправлено 09 May 2010 - 07:50

ZiTosS, единственная проблема которая меня все это время загоняла в тупик - как у новых сообщений которые мы читаем сменить статус на "прочитано"?
  • 0

#7 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 09 May 2010 - 17:04

Scream, не очень понял о чем ты. Но я же тебе сказал, что мы всегда будем знать о последнем сообщении, которое мы прочитали за последнее обращение к серверу. Поэтому мы будем знать, что прочитал текущий пользователь, а что ещё нет. Так как JS работает на стороне Клиента, у каждого пользователя последнее прочитанное сообщение будет иметь свой ID и обновляться окно чата будет у каждого в свой отмеченный момент времени.
Не понимаю, с чем у тебя проблема?
  • 0

#8 REiCh

REiCh
  • Неактивные
  • 20 сообщений
  • Репутация: 0

Отправлено 01 June 2010 - 12:59

Scream, Ajax + XML или JSON


Это работает неправельно :) ;) Оно появляется и исчезает ;)
  • 0

#9 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 02 June 2010 - 08:49

В чате нет понятия "Прочитанные сообщения".
Используй фреймворки. Например в jQuery удобно использовать appendTo. Чтобы добавлять новые строки. А проверять надо не раз в 30 секунд, а раз в 3 секунды через AJAX. И лучше использовать ля передачи JSON. Он быстрее работает.

Схема примерно такая.
Сообщения при отправлении записываются в Базу данных.
В сессии необходимо записывать ID последнего пришедшего сообщения.
AJAX проверяет базу данных. Если есть сообщения после ID, который в сессии, то добавляет с помощью appendTo или appendChild к уже существующим сообщениям строчки.
  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru