处理连续的JSON流

时间:2011-07-02 16:13:17

标签: javascript jquery json stream

(现已不存在)页面http://stream.twitter.com/1/statuses/sample.json用于返回连续且无穷无尽的JSON数据流。

我想在我自己的网页中使用jQuery(或JavaScript,但最好是jQuery)处理它,以便能够根据推文的实时馈送显示视觉效果。

据我所知,jQuery parseJSON函数只会在服务器发送完所有数据后执行回调函数,但实际上这是一个连续的数据流。如何“按照实际情况”处理数据,但仍保持连接正常运行?

4 个答案:

答案 0 :(得分:78)

答案 1 :(得分:8)

我有一个开源项目,允许在现代浏览器上使用它(并且在旧版本上可以回到jQuery风格)。调用语法类似于jQuery.ajax:

http://oboejs.com

答案 2 :(得分:3)

您在问题中指定的网址会发送JSON响应流。由于浏览器中的跨域安全限制,您无法使用javascript访问它。您需要在服务器上实现一个桥接服务器端脚本,您可以使用AJAX请求定期轮询或在twitter.com上托管您的站点。第一个似乎更可行。

答案 3 :(得分:-14)

基本级别的网页无法保持与服务器的实时/运行连接。 Web浏览器向服务器发送请求。服务器将响应(HTML和更多)发送回客户端(Web浏览器)。将此视为无状态模型 - 在请求和响应完成后,任何连接都不会保持活动状态。

因此,你必须自己做。您必须从客户端调用其他定期请求。

一种方法是通过setInterval()函数定期调用您的AJAX / GET功能。例如:

setInterval(function() {

    $.ajax({
      url: "mydata/get",
      success: function(){
        // update content.
      }
    });

}, 5000);

这将每5秒触发一次对mydata / get(或任何你想要使用的URL)的AJAX请求。