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插件之validation插件
Mar 29 jQuery
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
jQuery实现本地存储
Dec 22 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
图形数字验证代码
2006/10/09 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
jQuery 处理页面的事件详解
2015/01/20 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
python创建线程示例
2014/05/06 Python
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
python使用knn实现特征向量分类
2018/12/26 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
安全例会汇报材料
2014/08/23 职场文书
机关作风建设工作总结
2014/10/23 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
JavaScript 定时器详情
2021/11/11 Javascript
Python实现制作销售数据可视化看板详解
2021/11/27 Python
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL