-1

checkページをリロードせずに 4 秒ごとに divを更新したい。それ、どうやったら出来るの?

<?php 

include 'admin/db.php'; /*including database config*/
$result = mysql_query("SELECT * FROM player ORDER BY id");
while($row = mysql_fetch_array($result))
  {?>
    <div align = "center">
      <table border = "1px">
        <tr>
          <th>Name</th>
          <th>Run</th>
          <th>Bowl</th>
          <th>Strike Rate</th>
          <th>4's</th>
          <th>6's</th>
        </tr>
        <tr>
          <div id = 'check'>
           <td><?=$row['name'];?></td>
           <td><?=$row['run'];?></td>
           <td><?=$row['bowl'];?></td>
           <td><?=$row['sr'];?></td>
           <td><?=$row['numberofFours'];?></td>
           <td><?=$row['numberofsixes'];?></td>
          </div>
        </tr>
      </table>
    </div>
<?php 
}
mysql_close($con);

?>
4

3 に答える 3

1

ここにある他の投稿と同様に、これを実現するにはAJAX(非同期JavascriptおよびXML)手法を使用する必要があります。以下は、これがどのように行われるかの簡単な例です。

var xhr = new XMLHttpRequest();
xhr.open('POST', url, false);
xhr.onreadystatechange = function() {
    if( xhr.readyState === 4 && xhr.status === 200 ) {
        console.log(xhr.responseText);
    }
};
xhr.send("some=data");

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest

サーバーでは、初期データがブラウザーに送信されるときにタイムスタンプを付けて送信し、XHRリクエストごとにそのタイムスタンプをサーバーに送り返します。

同時にサーバー上で、新しいコンテンツ(行)が生成された場合は、タイムスタンプを更新する必要があります。クライアントがサーバーにリクエストを送信するとき、2つのタイムスタンプをチェックして、それらが等しいかどうかを確認します。等しくない場合は、データをクライアントに返送してUIを更新します。

今、あなたは取り組むべき何かを持っています。また、(SOからの)「長いポーリング」の例にリンクします。これは、作成する必要のあるコードのほとんどを支援するためです。

基本的な「ロングポーリング」を実装するにはどうすればよいですか?

于 2012-12-20T14:45:50.067 に答える
1

そのようなことを実現するには、javasrcipt を使用する必要があります。Ajax を使用してサーバーに接続し、データを取得してページを更新できます。

これを非同期で行う必要がある場合は、(たとえば) Web ソケットを介してロング ポーリングを実装する必要があります。私はあなたの質問を読み直しました。長いポーリングは間違いなくあなたが求めているものです。

基本的な「ロング ポーリング」を実装するにはどうすればよいですか?

于 2012-12-20T14:34:09.057 に答える
0

インターウェブ上の JavaScript ajax を調べます。

jQuery を使用した簡単な例 (使用する必要はありませ):

$.post(someURL, somePostData, function(dataReturned){
    //do something with dataReturned
});
于 2012-12-20T14:33:57.420 に答える