Мгновенные уведомления jQuery - PullRequest
1 голос
/ 21 декабря 2011

Я создаю веб-приложение, и мне нужен какой-то способ сделать следующее в jQuery и PHP:

  • jQuery отправляет запрос на страницу PHP
  • Страница PHP проверяет, есть ли что-то новое, если нет, останавливает запрос jQuery до тех пор, пока
  • jQuery не получит ответ и не отправит другой запрос, повторяя процесс

Я пробовал Long-просмотр методов в Google с jQuery, но они в значительной степени делают то же самое.Это то, что я ищу.

Любая помощь приветствуется.

Спасибо.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Точно так же, как предвестник, если вы идете по этому маршруту, вы также должны убедиться, что ваши сеансы не заблокированы для каждого запроса.Вы можете легко столкнуться с ситуацией, когда сеанс блокируется, когда вы делаете запрос.

В качестве лучшего варианта вы можете просто поработать над решением, похожим на «пульс», запрашивая страницу PHP каждые 30 секунд.(что похоже на то, что StackOverflow) слышит, чтобы уведомить вас о поступлении нового сообщения.

Еще лучше , чем это, было бы использовать WebSockets в node.js.Вы могли бы даже иметь PHP уведомлять node.js, когда появляется что-то «новое», как вы говорите, чтобы оно всегда было точным, и у вас не было постоянно запущенного PHP-скрипта.

WebSockets через socket.io

0 голосов
/ 21 декабря 2011

Вы пробовали установить время ожидания в JS, которое запускается каждый раз, когда PHP не возвращает обновлений?

Итак:

  • Вызовите функцию JS, которая проверяет PHP через Ajax (checkPHP()).
  • PHP не видит новых значений, возвращает '0', например
  • В функции приема данных для функции AJAX проверьте возвращаемое значение, если возвращаемое значение == 0: settimeout(checkPHP,5000);
  • Если возвращаемое значение != 0, делай свое дело.
  • Вы можете отобразить значок ожидания, если возвращаемое значение != 0
...