jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码


Posted in jQuery onMarch 21, 2017

心血来潮想为自己的小项目做一个提醒系统,譬如私信,评论等消息都能及时传递过来。由于道行尚浅,网上那些长轮询对于我略微复杂,于是觉得还是自己写一写试试比较好。

我的思路是,单独在数据库中建一个提醒表,表主要由接收者的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实现即时消息提醒功能实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
jquery replace方法去空格
May 08 jQuery
jquery拖动改变div大小
Jul 04 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
jquery在启动页面时,自动加载数据的实例
Jan 22 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
jQuery实现雪花飘落效果
Aug 02 jQuery
jQuery-App输入框实现实时搜索
Nov 19 jQuery
jquery插件制作 自增长输入框实现代码
Aug 17 #jQuery
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 #jQuery
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 #jQuery
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 #jQuery
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 #jQuery
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 #jQuery
jQuery轻松实现无缝轮播效果
Mar 22 #jQuery
You might like
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
python zip文件 压缩
2008/12/24 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
迟到检讨书300字
2014/02/14 职场文书
给学校的建议书范文
2014/05/15 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
经营目标责任书
2015/05/08 职场文书
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers