我们做web的时候偶尔会遇到消息推送,如图示例(红框位置)

当我们遇到这种功能要如何开发呢?下边将我了解的两种方法整理一下:

一、ajax轮询,定时去请求服务器数据

通过观察thinkphp官网貌似也是用的这个方法,下边将这种方法整理一下:

Notify.php
//获取通知消息
public function getNotifyCount()
{
$msg = db('message_logs')->where('isscan',0)->count();
RestfulTools::restData($msg); //这里是封装好的json_encode方法
}
notify.js
<span class="am-icon-envelope-o"></span> 消息 <span class="am-badge am-badge-warning" id="msgCount"> 
{$msgCount} //这是是通过tp的 assign方法分配过来的变量,作为初始值
</span>
<script type="text/javascript">

    var getting = {
url:"{:url('Notify/getNotifyCount')}",
dataType:'json',
success:function(res) {
console.log(res);
var msgCount = res.result;
$("#msgCount").html(msgCount); //用js的 html方法去改变id为msgCount的值
}
}; //Ajax定时访问服务端,这里是3分钟请求一次。 window.setInterval(function(){
$.ajax(getting)
},180000); </script>

二.websocket实时消息推送

这里还没测试,测试完即将完善

最新文章

  1. 事务隔离级别(IsolationLevel)
  2. Eclipse智能提示及快捷键
  3. hdu1260 dp
  4. bzoj 3172 [Tjoi2013]单词(fail树,DP)
  5. JavaScript高级程序设计6.pdf
  6. msxml 操作xml
  7. python中print后面加逗号
  8. saltstack:使用教程之二高级模块用法Grains、Pillar
  9. java_web学习(12)JDBC
  10. 【原】无脑操作:Gitblit服务器搭建及IDEA整合Git使用
  11. 【Android Studio安装部署系列】二十四、Android studio中Gradle插件版本和Gradle版本关系
  12. python常用的内置函数哈哈
  13. CentOS下软件安装与卸载常用命令总结
  14. ggplot2画histogram(坐标轴刻度值字体大小,坐标轴标题字体大小,柱形宽度,大标题字体大小、居中)
  15. 【译】第二篇 SQL Server安全验证
  16. springboot自带定时任务和集成quartz
  17. vba基础知识
  18. 在ros功能包CMakeLists.txt中获取所在功能包的路径 便于添加第三方库的相对路径
  19. 基于ArduinoLeonardo板子的BadUSB攻击实战
  20. Mysql学习---面试基础知识点总结

热门文章

  1. Spring 学习(三)AOP
  2. OSI七层和TCP/IP四层的关系、TCP与UDP、HTTP、Socket
  3. tcp 三次握手,四次挥手几常见面试题
  4. web应用框架Django
  5. Python 添加模块
  6. (转)linux下文件删除的原理精华讲解(考试题答案系列)
  7. Properties IO持久化
  8. sql server 分析
  9. IE6、7下块级元素设置display:inline-block不换行的解决办法
  10. input累加赋值