1

jquery と php を使用して、受信トレイなどのメッセージをチェックするのに役立つより良い方法はありますか?特定の php ファイルをチェックするために設定された間隔で ajax を使用して、メッセージを提供できることを知っています。

設定された間隔でこのようなもの

$.ajax({
    url: "message.php",
    type: "POST",
    data: { time : time_stamp },
    dataType: "json",
    success: function(data) {

                  // update the div content from here

        }
    }
});

しかし、これを行うより良い方法はありますか?設定された間隔でそれぞれ 10 分と言い、ユーザーがページに 8 分間費やして次のページに移動すると、間隔は 2 分ではなく最初からやり直されます。

だから、このケースをより適切に処理するために、php cronジョブなどを使用してajaxリクエストをトリガーできるかどうか疑問に思っていました。

みんな乾杯:)

4

2 に答える 2

1

ロング ポーリングを使用して、メッセージが利用可能になるか制限時間に達するまで接続を開いたままにすることができます。

基本的には、Ajax 呼び出しに長いタイムアウトを与え、メッセージが利用可能になるまでサーバー側スクリプトが応答しないようにするだけです。クライアントはタイムアウトになるまで接続を開いたままにし、その後再び接続を開かせます。開いている HTTP 接続を維持しなければならないという犠牲を払って、即座にフィードバックを得ることができます。また、すべてのブラウザでサポートされています。

例と詳細な説明については、この回答を参照してください:基本的な「ロングポーリング」を実装するにはどうすればよいですか?

于 2013-05-06T18:16:05.400 に答える
0

私の意見では、WebSocketはこれを実装する優れた方法です。これにより、リアルタイムのクライアント/サーバー対話が可能になります。まだすべてのブラウザーがこれをサポートしているわけではありませんが、ブラウザーがサポートしていない場合に自動的にロング ポーリングにフォールバックするクライアント側ライブラリを取得できます。Socket.ioはそのようなライブラリの 1 つであり、Web ソケット用の優れたクライアント側ライブラリです。PHP を使用して Web ソケット サーバーを作成したことはありませんが、これにも適切なオプションがあると思います。

于 2013-05-06T18:30:52.697 に答える