Есть ли какие-либо функции jQuery или плагины для comet на apache?
Я уже видел этот вопрос раньше и нашел этот пример в http://www.zeitoun.net/articles/comet_and_php/start который действительно велик и ясен. Однако он использует javascript.
Мой вопрос в том, есть ли какие-либо плагины, функции или что-то, что поможет мне легко реализовать PHP comet с помощью jQuery? Потому что данный пример требует много кода javascript.
И кстати, я хочу использовать его на Apache. Возможно ли это?
4 ответа:
Если вы делаете только длинный опрос, то jQuery будет работать нормально. Однако jQuery не предоставляет событие readyState === 3, поэтому нет встроенного способа получения данных в потоковом режиме, если это направление, в котором вы хотите идти.
[Edit] Вот этот жучок, #1172
И похоже, что они добавили функциональность в 1.5, используя префильтр
Так что да, теперь вы можете делать все кометные вещи с помощью jQuery:)
Comet-это long-polling, когда клиент отправляет запрос и ждет ответа от сервера. Сервер помещает запрос в очередь и сразу же получает обновленные результаты. Он посылает ответ клиенту.
Таким образом, в основном все, что вам нужно сделать, это отправить запрос.ajaxна сервер и использовать обратный вызовonSuccessдля обработки возвращаемых данных. Обратный вызовonSuccessне будет вызван, пока сервер не получит обновленные данные.Ничего особенного на стороне клиента. Действительность игра находится на стороне сервера, чтобы поставить запросы в очередь, а затем ответить соответствующим образом.
Взгляните на этот подробный пример кода ответа > Как реализовать базовый "длинный опрос"?
Я сделал jQuery версию comet раньше, вот что я сделал:
var comet = { connection : false, iframediv : false, initialize: function(){ // For other browser (Firefox...) comet.connection = $('<iframe>'); comet.connection.attr('id', 'comet_iframe'); comet.connection.css( { left : "-100px", top : "-100px", height : "1px", width : "1px", visibility : "hidden", display : 'none' }) //comet.iframediv = $('<iframe>'); comet.connection.attr('src', 'backend.php'); //comet.connection.append(comet.iframediv); $('body').append(comet.connection); }, // this function will be called from backend.php printServerTime: function (time) { console.log('time',time); $('#content').html(time); }, onUnload: function() { if (comet.connection) { comet.connection = false; // release the iframe to prevent problems with IE when reloading the page } } } $(window).load(comet.initialize) .unload(comet.onUnload);Я взял код прямо с этой страницы и сделал его jquery ^_^
Есть плагин, который я видел, попробуйте это? http://code.google.com/p/jquerycomet/