当前位置: 首页 > 编程笔记 >

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

微生令
2023-03-14
本文向大家介绍jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码,包括了jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码的使用技巧和注意事项,需要的朋友参考一下

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

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

 类似资料:
  • 本文向大家介绍Laravel admin实现消息提醒、播放音频功能,包括了Laravel admin实现消息提醒、播放音频功能的使用技巧和注意事项,需要的朋友参考一下 应用情景,有新的订单生成,后台进行消息提醒并播放音频(这里用到轮询简单实现):下面附代码 1.找到laravel-admin 中的 index.blade.php 文件进行编辑 2.请求路由控制器 实现效果: 注意:     使用G

  • 本文向大家介绍kotlin实现通知栏提醒功能示例代码,包括了kotlin实现通知栏提醒功能示例代码的使用技巧和注意事项,需要的朋友参考一下 一、概述 2019年英雄联盟LPL赛区赛季赛打得火热,作为一个RNG粉丝,想通过app实现RNG赛程提醒,于是就有了这次技术实践。我在网上找了很久,几乎没找到使用kotlin实现通知栏提醒的合适的文章,于是就到安卓官网看文档,一边翻译一边研究,最终实现了一个简

  • 本文向大家介绍jquery ajax实现文件上传功能实例代码,包括了jquery ajax实现文件上传功能实例代码的使用技巧和注意事项,需要的朋友参考一下 下面看下ajax实现文件上传     没有使用插件 一、单文件上传 二、多文件上传 这个是多选上传,关键是multiple="multiple"这个属性,另外使用的接口也是多文件上传的接口。 当然也可以使用单文件上传的模式,多次选择就可以了,只

  • 本文向大家介绍thinkPHP订单数字提醒功能的实现方法,包括了thinkPHP订单数字提醒功能的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP订单数字提醒功能的实现方法。分享给大家供大家参考,具体如下: 运行效果图如下: html: php: 本次采用数组的形式传值,具有统一性。 再加一个固定布局效果 css: 更多关于thinkPHP相关内容感兴趣的读者可查看

  • 本文向大家介绍ThinkPHP实现ajax仿官网搜索功能实例,包括了ThinkPHP实现ajax仿官网搜索功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP实现ajax仿官网搜索功能的方法。分享给大家供大家参考。 具体实现方法如下: 后台代码: 前端代码: 希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

  • 本文向大家介绍Android实现每天定时提醒功能,包括了Android实现每天定时提醒功能的使用技巧和注意事项,需要的朋友参考一下 这个是设置定时提醒的功能,即设置几点几分后提醒,用的是给系统设置个时间点,当系统时间到达设置的时间点的时候就会给我们发送一个广播,然后达到时间提醒功能 网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行

  • 本文向大家介绍Android后台定时提醒功能实现,包括了Android后台定时提醒功能实现的使用技巧和注意事项,需要的朋友参考一下 前提:考虑到自己每次在敲代码或者打游戏的时候总是会不注意时间,一不留神就对着电脑连续3个小时以上,对眼睛的伤害还是挺大的,重度近视了可是会遗传给将来的孩子的呀,可能老婆都跟别人跑了。 于是,为了保护眼睛,便做了个如下的应用: 打开后效果: 时间到之后有后台提醒: 好了

  • 本文向大家介绍jQuery实现下拉加载功能实例代码,包括了jQuery实现下拉加载功能实例代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上代码是小编给大家分享的jQuery实现下拉加载功能实例代码,希望对大家有所帮助!