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


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

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

    Ixman (o5cat.ru)
    Очков активности: 90 0 тем, 10 сообщений, 6 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 72 Вне конкурса за определение пользователя месяца

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

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

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

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

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

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

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

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Алексей111
    #8

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

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

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

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

    fedornabilkin (zaka4ano.ru)
    Очков активности: 24 0 тем, 4 сообщения, 4 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 24.09.2018
Топ 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