在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  HTML/ 如何得知每個會員的上線狀態(tài)?拜託幫我優(yōu)化一下代碼

如何得知每個會員的上線狀態(tài)?拜託幫我優(yōu)化一下代碼

我是硬寫的

$data = $pdo->query(
          "SELECT * FROM `user` "
        );
        $data2 = $pdo->query(
          "SELECT * FROM `user` "
        );

要顯示的地方

<? while($row = mysqli_fetch_array($data)){ ?>
<div class="user-<?=$row['id'];?>"></div>

jquery 與 後端
這個是擺在網(wǎng)頁最下面,因為我的 jquery 託管在下方
否則他會說找不到 $
所以

<script src="jquery.js"></script>

<? while($row = mysqli_fetch_array($data2)){ ?>

  <script>
  online_status_<?=$row['id'];?>();
  function online_status_<?=$row['id'];?>(){
    $('.user-<?=$row['id'];?>').load('/notify?type=xxx&id=<?=$row['id'];?>', function(data){
      $('.user-<?=$row['id'];?>').html(data);
    });
    setTimeout(online_status_<?=$row['id'];?>, 10000);
  };
  </script>
<?}?>

後端

$data = $pdo->query(
      "SELECT * FROM `user`
      WHERE
        `id` = '{$_GET['id']}' "
    );
    if(mysqli_num_rows($data)!=0){

      $row = mysqli_fetch_array($data);
      if(time()-$row['online_status'] > 20){
        echo '離線';
      }else{
        echo '上線';
      }
    }

user 數(shù)據(jù)表有個 online_status 欄位
我每十秒都會更新一次這個欄位,用時間戳。
於是在這裡判斷是不是上下線 if(time()-$row['online_status'] > 20){
這個方式奇蹟般的可以運行,但絕對不可行!
但我想找大神幫我看看如何優(yōu)化代碼??!

回答
編輯回答
毀了心

會員上線將狀態(tài)改變,之后增加心跳檢測!

2017年7月9日 03:57
編輯回答
厭惡我

我已經(jīng)解決了。。。

2017年8月14日 12:51