将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