Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Принцип чат-рефреша
 
 автор: bronenos   (16.06.2007 в 19:33)   письмо автору
 
 

Сначала у меня чат был построен так...

1. Запрос к файлу
2. Получение ответа в виде
HASH
message 1
message 2
message 3

3. Если HASH (контрольная сумма сообщений) отличается от прошлой - то обновляю содержимое и заношу новый HASH.
4. -> (1)

Но проблема была в том, что трафик был великоват, так как шло получение всех сообщений каждый раз... Я решил это исправить и сделал иначе

1. Запрос к файлу (check)
2. Получение HASH
3. Если HASH отличается от прошлого - то обновляю его и гружу список сообщений запросом к тому же файлу (load)
4. Обновляю содержимое

И вот встал вопрос у меня.... что лучше - в два-три раза быстрее показывать сообщения (первый вариант) или оставить как есть, снизив трафик раз в 5-10 или даже 15?

   
 
 автор: ddhvvn   (16.06.2007 в 19:48)   письмо автору
 
   для: bronenos   (16.06.2007 в 19:33)
 

Выпендрись и сделай оба варианта с выбором в админке или конфиге :-DD

   
 
 автор: Drago   (16.06.2007 в 20:05)   письмо автору
 
   для: bronenos   (16.06.2007 в 19:33)
 

Я делал примерно также, как описано во втором случае. Только вместо хэша использовал id сообщения. При отправке запроса на обновление страницы, передавал id последнего загруженого сообщения, который хранится у пользователя в виде js переменной. И в php скрипте выводил только те сообщения, id которых больше полученного. Трафик при этом минимален. И с быстродействием я проблем не заметил.

   
 
 автор: bronenos   (16.06.2007 в 20:10)   письмо автору
 
   для: Drago   (16.06.2007 в 20:05)
 

мм... дело в том что у меня происходит управление из админы сообщениями - и поэтому последний ИД... вдруг два чела одновременно: 1. удалит сообщение 2. напишет новое
ИД получатся одинаковыми и чат не обновится

но дело не в этом
отпишитесь кому не лень, как лучше сделать - жертвовать трафиком или скоростью

   
 
 автор: kasmanaft   (16.06.2007 в 20:31)   письмо автору
 
   для: bronenos   (16.06.2007 в 20:10)
 

> 1. удалит сообщение
в чате? ...... а зачем?

> ИД получатся одинаковыми
ИД на то и ИД, чтоб быть разным :)

> как лучше сделать - жертвовать трафиком или скоростью
Зачем чем-то жертвовать? Я бы не сидел в медленном или жрущем много трафика чате.

   
 
 автор: Drago   (16.06.2007 в 20:37)   письмо автору
 
   для: bronenos   (16.06.2007 в 20:10)
 

>мм... дело в том что у меня происходит управление из админы сообщениями - и поэтому последний ИД... вдруг два чела одновременно: 1. удалит сообщение 2. напишет новое
>ИД получатся одинаковыми и чат не обновится

у меня сообщения хранятся в базе и для столбца id установлен auto_increment. Так что, два сообщения с одинаковым id быть не может, в принципе.

> подумай - тут в первом случае проверить первую строчку и если все норм то вывести
> во втором - проверить, сделать еще один запрос, получить ответ и только тггда вывести на экран

а зачем делать два запроса? Не проще ли сразу передать хэш в php и там проверять на совпадение?

   
 
 автор: bronenos   (16.06.2007 в 21:03)   письмо автору
 
   для: Drago   (16.06.2007 в 20:37)
 

ёла-пала... спасибо кстати)))
идея хорошая))

   
 
 автор: bronenos   (16.06.2007 в 21:49)   письмо автору
 
   для: Drago   (16.06.2007 в 20:37)
 

насчет базы - я выбрал файлы, чтоб было проще переносить и нигде не испытывать проблем с кодировками

   
 
 автор: bronenos   (16.06.2007 в 20:12)   письмо автору
 
   для: Drago   (16.06.2007 в 20:05)
 

подумай - тут в первом случае проверить первую строчку и если все норм то вывести
во втором - проверить, сделать еще один запрос, получить ответ и только тггда вывести на экран

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования