6

我正在尝试创建一个实时网站分析仪表板,该仪表板使用 jQuery/JavaScript 异步创建与服务器的开放 HTTP 连接,以在发生数据更新时轮询服务器以获取数据更新。

显而易见的开始是使用一个XMLHttpRequest对象或 jQuery 的$.ajax方法向服务器发送一个GETPOST请求异步请求一些数据。

setInterval但是,除了使用一种方法一次发送一个请求之外,30 seconds我不确定如何使与服务器的连接持久。基本上,我只想发送一个 http 请求并确保与服务器的连接保持打开状态以进行轮询!

我的示例代码setInterval如下:

<div id="analytics"></div>
<script>
var analytics = document.getElementById('analytics');
setInterval(function(){
    $.ajax({ url: "http://server.com/", success: function(data){
        analytics.innerHTML = data;
    }, dataType: "json"});
}, 30000);
</script>
4

1 回答 1

12

在线搜索后,这是我一直在寻找的答案,它不使用 sockets.io也不使用WebSockets,而是利用其方法创建人工循环: jQuerycomplete

<div id="analytics"></div>
<script>
var analytics = document.getElementById('analytics');
(function poll(){
    $.ajax({ url: "server", success: function(data){
        analytics.innerHTML = data;
    }, dataType: "json", complete: poll, timeout: 30000 });
})();
</script>

来源是来自 Technoctave 的 Tian Davis:http: //techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

于 2012-12-25T01:51:00.443 回答