1

私は現在、ページを更新せずに新しい投稿/編集をロードするフォーラム システムを作成中です。さて、EventSource/WebSocket を実装していない古いブラウザには、別のオプションを提供したいと思います。

X 秒ごとに、5 つの最新ニュースを反映している PHP サイトを GET しています。その後、クライアントがまだ見ていないニュースを確認し、ページに変更を適用するだけです。

さて、私の問題は次のとおりです。クライアントが新しい更新を取得する X 間隔をどのように決定しますか? ユーザーの接続を完全に切断しないように、ユーザーの接続をベースにしたいと思います。

これを達成するためのあなたの試みは何ですか?

4

3 に答える 3

1

私は次のことを行います(コードはテストされていませんが、アイデアは得られるはずです)。単純なコードには jQuery を使用します。

function refreshNews() {
    $.ajax({
        url: "ajax-url"
    }).done(function(data){
        /** add code here */
        setTimeout(function(){ refreshNews(); }, 30000); // 30 secs should be enough to read some headlines
    });
}
refreshNews();

このようにして、refreshNews()関数はデータが受信されてユーザーに表示された後にのみ呼び出されます。

于 2013-09-05T15:29:21.000 に答える
1

アイデア: HTTP リクエストを作成し、どれだけ時間がかかるかを確認し、それをベースとして使用してください! 繰り返しますが、クライアントのことをどれだけ考えているかを示すために、10 分ごとに言ってみましょう。

特にフォーラムのようなlong pollingスクリプトでは、ユーザーが 10 時間以内にページを離れることはありません。:)

于 2013-09-05T15:30:30.787 に答える