2012-05-01 7 views
0

私はサイトの良さと悪さ、主に2歳の両方でMySQLをポーリングするさまざまな方法を見つけました。MySQLとPHPを使用したJQueryポーリングどうやって?

サーバーを適切にポーリングする方法の例をご覧ください。

コメントが挿入されるMySQLテーブルがあります。私は、このサーバーをポーリングしてDIVに追加する方法についてJQueryの例を見たいと思います。新しいコメントは、最後のポーリングチェックから5秒ごとに最後の10個のエントリを表示するのではなく、テーブルに挿入されます。

setIntervalは、別のリクエストを行う前にリクエストが成功したかどうかを気にしないので、setInterval以外の例は理想的です。

答えて

0

DB内の新しいコメントをチェックしてJSONエンコードされたものを返すサーバーサイドスクリプトにAJAXリクエストを送信する必要があります。

最新のコメントのみを取得するには、クライアントサイドのコードで、最後のコメントフェッチのタイムスタンプを維持します。次にコメントを要求するときに、このタイムスタンプを渡します。サーバー側のスクリプトは、渡されたパラメータよりもタイムスタンプが大きいコメントのみを返します。

setIntervalの代わりに、成功ハンドラでAJAXリクエストを再送信することができます。

function ajaxRequest(timestamp) { 
    $.ajax({ 
     url : 'url_to_post?timestamp=' + timestamp, 
     success : function(response){ 
      //handle the new comments here 
      //call this function again 
      //sleep for 3 seconds first 
      setTimeout(function(){ 
       timestamp += 3000; 
       ajaxRequest(timestamp); 
      },3000); 

     } 

    }); 
} 
+0

ええと興味深いです。成功ハンドラでAJAXリクエストを再送信することについてもっと教えてください。何らかのループのように聞こえる。あるいは、サンプルを投稿するのでしょうか? =) – ASPiRE

+0

@Vini:コードサンプルを投稿しました。はい、再帰的ループです。 – xbonez

+0

右。 3つの言語すべてが容易に相互に変換されるように、提出され、タイムスタンプのフォーマットがMySQL経由でPHPからPHPに渡されて比較されることを確認してください。 – ASPiRE

関連する問題