2011-07-02 10 views
1

同様の質問hereを読んだ後、これがすべて可能かどうか不思議です。CouchDB - jQueryを使用した連続フィード

私は以下の作業を行うことができますが、変更チェック機能を繰り返し呼び出すsetInterval関数をラップすることでわかりますが、連続ポーリングを使用する方がはるかです。

データベースは定期的にFirebugのは、変更が実際に行われたとき、何かが起こるを示すピーク時分ごとに更新されますが、オフピーク時のポーリングのデータベースを維持するために、廃棄物らしい...

$.getJSON('http://localhost:5984/db?callback=?', function(db) { 
    console.log(db.update_seq); 
    $.getJSON('http://localhost:5984/db/_changes?since='+db.update_seq+'&feed=continuous&callback=?', function(changes) { 
     console.log(changes); 
    }); 
}); 

ますnullだけが返されます。

私はlocalhostの/ index.phpを

+1

私は100%確信していませんが、生のXHR APIがCOMETスタイルの更新との長い接続を許可していると思います。 jQueryは簡単にするためにこれを公開していません。 jQueryには完全なクエリと完全な応答があり、ストリーミングはありません。私が正しいとすれば、私はそれも必要なので、これを修正するjQueryプラグインが大好きです! – JasonSmith

+0

@jhs、あなたに同意する必要があります!しばらく前にこの同じことを調べて、私の現在の方法(setInterval/long-polling)を解決しなければならないことを覚えています。あなたが何かを発見したら教えてください! :) – crawf

答えて

2

ではなく、連続またはロングポーリングを使用してからページを呼び出すと、同じドメイン上にもよ、あなたの代わりに適応戦略を採用できました。おそらく1分間隔で開始します。更新がない場合は、2分後に3分、4分、5分などに更新します。更新がある場合は、次回の更新までの時間を反映するように間隔を変更できます。

基本的には、ほぼリアルタイムでアップデートの通知を受け取ることが重要で、対処するのにどれだけの遅延があるかということが重要です。

+0

ありがとう!私のソリューションのためにこれらのラインに沿って何かしています。私はいつもsetIntervalを使って少し緊張しているように感じます... – crawf

関連する問題