亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jQuery+ThinkPHP+Ajax實現(xiàn)即時消息提醒功能實例代碼

 更新時間:2017年03月21日 17:04:50   作者:jauliu  
這篇文章主要介紹了jQuery+ThinkPHP+Ajax實現(xiàn)即時消息提醒功能的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下

心血來潮想為自己的小項目做一個提醒系統(tǒng),譬如私信,評論等消息都能及時傳遞過來。由于道行尚淺,網(wǎng)上那些長輪詢對于我略微復(fù)雜,于是覺得還是自己寫一寫試試比較好。

我的思路是,單獨在數(shù)據(jù)庫中建一個提醒表,表主要由接收者的id和消息類型兩個字段組成

/* 前臺提醒表 */
CREATE TABLE IF NOT EXISTS notification(
  id      INT NOT NULL AUTO_INCREMENT PRIMARY KEY,  --  主鍵自增
  mid     INT NOT NULL DEFAULT 0,            --  用戶id
  type    INT NOT NULL DEFAULT 0            -- 0:私信 1:帖子評論 2:商品售出 3:商品評論 4:小組申請已發(fā)送 5:小組創(chuàng)建成功 6:小組新成員加入 7:小組舊成員退出 8:活動邀請
)ENGINE=MyISAM DEFAULT CHARSET=UTF8;

然后在前臺頁面中寫一個遞歸函數(shù),用來請求Ajax。

function require() {
   var url = "{U('Group/checkNotify')}";
      
   $.get(url,null,function(data) {
          
      // 如果獲得的數(shù)據(jù)不為空,則顯示提醒
      if ($.trim(data) != '') {
        // 這里寫提醒的方式
        alert('haha');
      }
   });
   // 每三秒請求一次
   setTimeout('require()',3000);
}

在后臺查詢?nèi)肭暗疆?dāng)前時刻數(shù)據(jù)庫中是否有數(shù)據(jù)插入,如果有,則返回所需要的信息

public function checkNotify() {
  // 實例化自定義的模型類
  $Notify = D("Notification");
  // 獲取當(dāng)前用戶的id
  $mid = $_SESSION['member']['id'];
  // 由于Ajax三秒鐘才執(zhí)行一次,所以新數(shù)據(jù)的插入時間要晚于查詢的的請求時間(當(dāng)前時間)三秒鐘
  $time = time() - 3;
  // 準備查詢條件
  $where = "mid = $mid and created>$time";
   // 查找數(shù)據(jù)庫中是否有新數(shù)據(jù)插入
  $bool = $Notify->where($where)->find();
  // 如果查詢結(jié)果非空,則輸出結(jié)果集第零條數(shù)據(jù)的type參數(shù),即提醒類型,然后再從數(shù)據(jù)庫對應(yīng)表中獲取提醒內(nèi)容
  //本測試默認3秒中內(nèi)只有一條消息,如果想更加精確,也可以縮短請求時間
  if ($bool != null) {
    //測試數(shù)據(jù)     
    echo $bool[0]['type'];
  };
}

當(dāng)然,要讓文檔載入完畢后就執(zhí)行該函數(shù)

<body onload="javascript:return require();">

以上所述是小編給大家介紹的jQuery+ThinkPHP+Ajax實現(xiàn)即時消息提醒功能實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論