国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery+ThinkPHP+Ajax實現即時消息提醒功能實例代碼

2019-11-19 17:05:18
字體:
來源:轉載
供稿:網友

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

我的思路是,單獨在數據庫中建一個提醒表,表主要由接收者的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:小組申請已發送 5:小組創建成功 6:小組新成員加入 7:小組舊成員退出 8:活動邀請)ENGINE=MyISAM DEFAULT CHARSET=UTF8;

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

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

在后臺查詢三秒前到當前時刻數據庫中是否有數據插入,如果有,則返回所需要的信息

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

當然,要讓文檔載入完畢后就執行該函數

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郯城县| 肃北| 搜索| 丹寨县| 鄂尔多斯市| 定襄县| 洪洞县| 聂拉木县| 江口县| 横峰县| 峨山| 横峰县| 大悟县| 温宿县| 博湖县| 陵水| 祥云县| 阳朔县| 兴山县| 长乐市| 奈曼旗| 万山特区| 泗水县| 通道| 胶州市| 都兰县| 梅河口市| 钦州市| 曲靖市| 白玉县| 南木林县| 西畴县| 贡觉县| 巨野县| 隆安县| 崇阳县| 手机| 黎川县| 宝鸡市| 江城| 探索|