このウィキをチェックしてくださいhttp://en.wikipedia.org/wiki/Push_technology
あなたが考えているのはロングポーリングだと思います。サーバーが出力をチャンクに設定する場所 ( PHP の例については、 PHP にチャンク応答を生成させる方法を参照)
サーバーがチャンクされた応答を送信したら、https://github.com/flowersinthesand/portalのようなものを使用してストリームを継続的に読み取ることができます。
サーバーの転送エンコーディングを変更できない場合、または ajax に固執する必要がある場合の代替手段は、クライアントにサーバーの変更をポーリングさせることです。のようなもの(これを短縮するためにjQueryを使用)
setInterval(function(){
// last_updated lets you compare what's changed since the last call so you can stream updates. Or you could have the server respond with a certain amount of bytes, and then have this param remember where they are in the stream and send the next X bytes
$.get("/my/endpoint?last_updated=" + (new Date().getTime()), function(d){
console.log("Got response");
});
}, 5000); // Refresh every 5 seconds
個人的には、Socket.ioを使用して多くの幸運がありました。これはnode.js ベースですが、各クライアントが可能な限り最高のパフォーマンスを得る方法を処理します。(内部的には、websockets を使用しようとし、フラッシュ ソケットにフォールバックしてからポーリングするため、すべての人をサポートしながら、新しいブラウザーのファンシーな速度を得ることができます)