Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Long polling новые сообщения
Проблема в том что когда приходит новое сообщение блок count не обновляется, если повесить событие onclick="getmess();" на кнопку, то при нажатии на нее счетчик обновляется, но мне нужно чтобы он обновлялся сразу как приходит новое сообщение.
LIME
Отправлено: 15 Апреля, 2014 - 00:12:48
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
в коде написано 10 секунд. нагрузка конечно есть, всё зависит от сложности кода выполняемого в скрипте notif.php
есть конечно другие технологии, в той же статье по ссылке выше рассматривались, вам нужен был лонг пулинг - вот он
лучше конечно таймаут оставлять на около 5 сек не чаще
----- Just do it
RageXL
Отправлено: 15 Апреля, 2014 - 14:47:26
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
Странно по моему функция не реагирует на изменение значения timeout, запросы все равно отсылаются каждую секунду
Panoptik
Отправлено: 15 Апреля, 2014 - 16:13:59
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
возможно разные версии jquery и были какие-то изменения, посмотрите документацию по jquery ajax (Добавление)
если что - можно в комплит вместо вызовы ф-ции просто всунуть setTimeout и внутри уже вызов
----- Just do it
RageXL
Отправлено: 16 Апреля, 2014 - 14:12:54
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
Все равно не выходит, запрос должен длится 10 секунд, он длятся 1 секунду затем отсылается следующий.
IllusionMH
Отправлено: 16 Апреля, 2014 - 14:16:50
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
RageXL, как этот запрос вообще отсылается повторно? Ищите таймер, т.к. timeout не задет интервал повторений запросов, а только интервал через который будет выброшена ошибка превышения времени ожидания.
Покинул форум
Сообщений всего: 34
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
У меня на данный момент всего один вопрос. Как добиться того, чтобы длина запроса была не 1 секунду, а 10 ?
IllusionMH
Отправлено: 16 Апреля, 2014 - 15:42:15
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
RageXLRageXL, запрос заканчивается когда отвечает сервер либо отваливается по таймауту.
Если как спрошено выше у вас есть свой таймер который посылает запросы каждую секунду - ищите его, если у вас сервер отвечает сразу, а не крутиться в цикле ожидая "события" чтобы ответить - правьте сервер.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.