Построение списка активных пользователей чата с использованием БД

Serguitar

Новичок->продвинутый
friend123
Господи, а фрейм для ввода сообщений зачем обновлять-то?
 

friend123

Guest
Автор оригинала: Лексеич
friend123
тогда используй фрэймы. в одном вставляй мету а в другом держи форму ввода сообщений.
А без фреймов нельзя никак?
 

friend123

Guest
Рискнул использовать фреймы, некоторые проблемы решились вроде обновления.
Но хочу вернуться к первому вопросу. Извините за настойчивость, просто не люблю не решенные проблемы. Я объясню вам как я вижу суть проблемы и вы поймете мою ошибку. Насколько я знаю существует 2 типа выполнения задач: серверная и клиентская. Клиентская: пользователь авторизовался, в БД занесло значение online=1. Пользователь вышел и ВСЁ, выполнение скрипта прервалось и ничего не записалось. Отсюда вывод: чтобы записать в БД online=0 когда пользователя уже нет, необходимо выполнять этот скрипт как серверную задачу, т.е. постоянная проверка. Может чего-то не понимаю? Покритикуйте!
 

SelenIT

IT-лунатик :)
Работа БД в вебе не может быть "клиентской задачей", т.к. БД в любом случае работает на сервере. А "постоянная проверка" применительно к чату с обновлениями может означать лишь "проверка при каждом обновлении", поскольку сервер взаимодействует с клиентом только в эти моменты.
 

Лексеич

Московский калмык
friend123
на каждое действие юзверя вноси в базу значение фенкции time, а потом проверяй. если меньше 5 минут допустим то онлайн, если больше, то оффлайн.
 

fax

Guest
Лексеич
Зачем при каждом действии вносить в базу значение , легче в фрейме который обновляется вставить эту функцию , и при каждом обновлении он будет заносить новое время в БД...
 

Фанат

oncle terrible
Команда форума
Лексеич, не на каждое действие, а при каждом запросе обновлений.
 

friend123

Guest
Спасибо за умные советы, но можно по пунктам или в виде кусочков кода, так понятнее. Такой момент: скрипт-то ведь выполняется когда клиент его запускает, верно? А мне нужна постоянная проверка времени, чтобы определить в онлайне юзер или нет.
 

Фанат

oncle terrible
Команда форума
как часто у тебя чат обращается на сервер за обновлениями?
 

Лексеич

Московский калмык
fax, ага, либо так.
Фанат, ну типа это и имел ввиду, просто криво сказал. ;(
 

Фанат

oncle terrible
Команда форума
ПОВТОРЯЮ СВОЙ ВОПРОС:
как часто у тебя чат обращается на сервер за обновлениями?
 

fax

Guest
friend123
По пунктам.
Есть чат...он периодически обновляется (либо в результате действий пользователя либо сам) , в момент обновления в БД записывается время допустим time+60 ....
В списке онлайн исползуй выборку по типу usertime>=time
и пока время юзера больше time он будет висеть в онлдайн.
online=0,1 - это чушь ....тебе надо использовать время.
 

friend123

Guest
Автор оригинала: Фанат
ПОВТОРЯЮ СВОЙ ВОПРОС:
как часто у тебя чат обращается на сервер за обновлениями?
Обновление происходит каждые 10 секунд, хотя я хочу сделать обновление только при добавлении нового сообщения(меньше загрузка).
 

fax

Guest
я хочу сделать обновление только при добавлении нового сообщения(меньше загрузка). (с)
Значит если пользователь не будет ничего писать , то соответственно новых сообщений он не увидит - глупость.
 

Фанат

oncle terrible
Команда форума
friend123
пойми, ты всё равно ДОЛЖЕН обращаться к серверу, чтобы узнать - есть что-нибудь новое, или нет. ты можешь не обновлять. Но обращаться - должен

Зайди в раздел по яваскрипту.
Там такой чат обсуждается в каждом втором сообщении.
ещё можешь почитать тему "Сравнительные характеристики" в форкме для продвинутых. Только ПОЧИТАТЬ, а не писать.
 

friend123

Guest
Автор оригинала: fax
я хочу сделать обновление только при добавлении нового сообщения(меньше загрузка). (с)
Значит если пользователь не будет ничего писать , то соответственно новых сообщений он не увидит - глупость.
Виноват, не так выразился. Я имел ввиду, что чат будет обновляться не каждые скажем 10 секунд, а только тогда, когда в БД запишется новое сообщение, т.е. при добавлении сообщения в БД чат обновится у всех
 

fax

Guest
Если он не будет обновляться то как скрипт узнает что в БД записалось новое сообщение???? читай пост выше.
 
Сверху