将JSON片段流式传输到jQuery

是否有可能使用jQuery来保持打开HTTP连接和数据流?

从我的Web服务器,我得到以下(每个JSON对象由换行符分隔)

HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked

{"a":{"uptime":15876}}
{"a":{"uptime":15877}}
{"a":{"uptime":15878}}
{"a":{"uptime":15879}}
...

在我的网页中,我正在做:

$.ajax({
        type:       "GET",
        url:        'http://server/stream',
        data:       function(data) { console.log("data="+data); },
        timeout:    20000,
        dataType:   "text",
        error:      function(XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus); },
        success:    function(data) {console.log("done"+data); },
        cache:      false
    });

我看不到任何输出,并且Firebug声称没有响应HTTP请求,我在Firefox标签中看到一个微调。

tcpdump显示浏览器正在接收数据,但是我从来没有看到任何控制台日志,就好像完成时它们都被缓冲了一样进行打印。

我错过了什么?


你试图做的是被认为是长时间投票。 使用jQuery并不容易实现,你可能想看看,这可能是矫枉过正的,是一个像node.js这样的非阻塞服务器技术,你可以使用这个插件和jQuery。


不是真的。 浏览器不会将数据传递给jquery,直到连接关闭,因此它不会按照您想要的方式工作。

你需要使用像socket.io或可悲的被忽视的hookbox来为你管理一个websocket连接。

链接地址: http://www.djcxy.com/p/7579.html

上一篇: Streaming JSON fragments to jquery

下一篇: Difference between OS scheduling and RTOS scheduling