apache上有彗星的jQuery函数或插件吗?

时间:2011-04-25 14:01:33

标签: php jquery apache comet

我之前看到过这个问题,并在http://www.zeitoun.net/articles/comet_and_php/start中找到了这个例子,这个例子非常清楚。但是,它使用javascript。

我的问题是,是否有任何插件,函数或其他东西可以帮助我轻松地使用jQuery实现PHP彗星?因为给定的示例需要大量的JavaScript代码。

顺便说一句,我想在Apache上使用它。有可能吗?

4 个答案:

答案 0 :(得分:3)

Comet是长轮询,客户端发送请求并等待来自服务器的响应。服务器会在获取更新结果后对请求进行排队。它将响应发送给客户端。

所以基本上你需要做的就是向服务器发送.ajax请求并使用onSuccess回调来处理返回数据。除非服务器获取更新的数据,否则不会调用onSuccess回调。

客户端没什么好看的。实际游戏在服务器端排队请求,然后做出相应的响应。

看一下这个答案的详细代码示例> How do I implement basic "Long Polling"?

答案 1 :(得分:3)

如果你只是做长轮询,那么jQuery会正常工作。但是,jQuery没有公开readyState === 3事件,所以没有内置的方法来获取数据,因为它是流式传输,如果这是你想去的方向。

<强> [编辑] 这是错误#1172

看起来他们使用Prefilter

在1.5中添加了功能

所以是的,你现在可以用jQuery做所有的彗星:)

答案 2 :(得分:3)

之前我已经制作了彗星的jQuery版本,这就是我所做的:

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 ^ _ ^

答案 3 :(得分:1)

有一个我见过的插件,试试这个? http://code.google.com/p/jquerycomet/