javaWeb项目中需要一个实时提醒的功能,也就是某人做了某一操作,可以立即提醒到当前在线的用户
最开始想在用户做了操作后,储存一个状态到数据库中然后用每隔几秒用ajax去请求后台查询数据库来确定是否显示提醒窗口
提醒窗口使用jquery easyui 的messager 在右下角弹出如下图
后查得可通过AJAX长轮询的方法来解决频繁对后台的请求,进一步减小压力
在实现过程发现AJAX的多次请求会出现多线程并发的问题又使用线程同步来解决该问题
个人对ajax长轮询的一点愚见
ajax请示后台时,后台程序并没有立即返回信息而是挂起,当符合条件时才会返回信息
文笔不好,只能白话出来,如有不对的地方还请各位指正,一起探讨学习!
现贴出部分代码
js ajax实现部分
function getRtmMsg(show){
$.ajax({
type:"POST",
url:"rtmAction!getMsg.action",
data:"show="+show,
success: function(msg){
if(msg!=null){
bottomRight();
getRtmMsg("0");
}
}
});
}
使用 jquery easyui的messager弹出提示窗口代码
function bottomRight(){
$.messager.show({
title:'提醒',
msg:'下载考生',
showType:'show'
});
}
后台Action
/**
* 实时消息Action
* @author wangwei
* May 23, 2013
*/
public class RtmAction extends ActionSupport{
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
private static final ThreadLocal threadLocal = new ThreadLocal();
private static Object lock = new Object();
public void getMsg(){
String show = request.getParameter("show");
if("0".equals(show)){
RtmTemplate.cjzxShow = false;
}
try {
//多线程同步解决并发问题
synchronized(lock){
while(!RtmTemplate.cjzxShow){
System.out.println("检测中。。。。");
Thread.sleep(5000);
}
}
response.getWriter().println("1");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
通过ajax实现页面无刷新验证用户名是否可用,在不点击提交按钮的基础上自动验证用户名,注意此时没有连接数据库去做判断,重点只是实现无刷新的数据交换
运用javaweb开发基于ajax的省市联动,省市数据从json文件获取,不需要额外数据库连接
JavaWeb关于Ajax与Jquery;Ajax的调用,Jquery使用,如何使用Jquery实现Ajax
项目描述:基于JAVAWEB、Jquery、bootstrap图书管管理系统的设计与实现。 系统角色:管理员 老师 学生 除了基本增删改查外主要逻辑: 1.管理的增删改查 2.用户和老师可选择图书订阅 3.管理员图书归还和借阅管理
本ajax实例是基于javaweb的,各种实例,足够项目开发使用,代码清晰简单。适合初学者也适合开发者
Ajax JavaWeb JS 三级联动 Ajax JavaWeb JS 三级联动 Ajax JavaWeb JS 三级联动
基于javaweb+jquery+mysql的仿猫眼订票系统
基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与...
基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与...
基于Javaweb的音乐网站的设计与实现论文(20210806154800).pdf
主要介绍了JavaWeb开发之使用jQuery与Ajax实现动态联级菜单效果的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
此资源与我的博客13_JavaWeb——AJAX中的两个案例对应,其中Demo5使用AJAX异步处理页面实现对用户输入的实时校验,Demo6使用Axios+JSON完成对品牌列表的展示和添加,取代了先前的JSP。希望有所帮助
基于JavaWeb的博客网站的设计与实现论文
本文实例为大家分享了jQuery实现轮播图及其原理的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" name="viewport" content="width=device-width,...
JavaWeb通过ajax、json实现省市二级联动:客户端通过jsp页面,来访问服务器的servlet,服务器访问数据库,返回json数据给客户端
基于Javaweb的音乐网站的设计与实现论文.pdf
基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计...
基于JavaWeb的博客网站的设计与实现外文翻译.docx基于JavaWeb的博客网站的设计与实现外文翻译.docx基于JavaWeb的博客网站的设计与实现外文翻译.docx基于JavaWeb的博客网站的设计与实现外文翻译.docx基于JavaWeb的...
基于JavaWeb的博客网站的设计与实现任务书.docx基于JavaWeb的博客网站的设计与实现任务书.docx基于JavaWeb的博客网站的设计与实现任务书.docx基于JavaWeb的博客网站的设计与实现任务书.docx基于JavaWeb的博客网站的...