6

jQuery/JavaScript を非同期に使用してサーバーへのオープン HTTP 接続を作成し、データの更新が発生したときにサーバーをポーリングするリアルタイム Web サイト分析ダッシュボードを作成しようとしています。

これの明らかな開始点は、XMLHttpRequestオブジェクトまたは jQuery の$.ajaxメソッドを使用して、GETまたはPOST要求を非同期的にサーバーに送信し、データを要求することです。

ただし、setIntervalメソッドを使用して一度に 1 つの要求を送信する以外30 secondsに、サーバーへの接続を永続的にする方法がわかりません。基本的に、私は1 つの 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.ioWebSockets 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のTianDavisです:http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

于 2012-12-25T01:51:00.443 に答える