Есть ли какие-либо функции jQuery или плагины для comet на apache?


Я уже видел этот вопрос раньше и нашел этот пример в http://www.zeitoun.net/articles/comet_and_php/start который действительно велик и ясен. Однако он использует javascript.

Мой вопрос в том, есть ли какие-либо плагины, функции или что-то, что поможет мне легко реализовать PHP comet с помощью jQuery? Потому что данный пример требует много кода javascript.

И кстати, я хочу использовать его на Apache. Возможно ли это?

4 4

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/