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();
}
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用jQuery的AJAX功能实现一个简单的登录系统,该系统能够实时检查用户名是否存在,而无需用户点击提交按钮或刷新整个页面。这种方法极大地提升了用户体验,因为用户可以即时得到反馈,...
在JavaWeb中,通常使用JavaScript库如jQuery或者原生的XMLHttpRequest对象来实现Ajax请求。 1. **Ajax工作原理**: - 用户触发事件,例如在省份下拉框中选择某个省份。 - JavaScript监听到该事件,通过Ajax向...
9. **JQuery与AJAX**:许多实例可能使用了JQuery库,JQuery简化了AJAX的使用,提供了$.ajax()、$.get()、$.post()等便捷方法。 10. **AJAX与Spring MVC**:在JavaWeb环境中,AJAX常与MVC框架如Spring MVC结合,用于...
通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。核心组成部分包括JavaScript、XMLHttpRequest对象(现在更多使用Fetch API)和DOM操作。Ajax的优势在于它可以提供更好的用户体验,减少网络传输,...
【标题】"基于javaweb+jquery+mysql的仿猫眼订票系统"是一个实际的项目开发案例,它结合了多种技术来实现一个类似于猫眼电影的在线订票功能。这个系统利用JavaWeb作为后端开发平台,jQuery作为前端交互库,而MySQL则...
在本项目中,我们主要探讨的是如何在JavaWeb应用中实现一个包含登录功能的前端界面,并结合Jquery进行Ajax请求,以及实现图片轮播效果。同时,后端使用Java进行用户验证,前端则通过div标签动态生成HTML内容,提供...
3. **jQuery与Ajax**: 虽然原生JavaScript可以实现Ajax,但为了简化代码,通常会使用jQuery库,它提供了更简单的API来处理Ajax请求。例如,`$.ajax()`, `$.get()`, `$.post()`等方法,使得异步请求更易理解和编写...
基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与实现.zip基于JAVAWEB校园订餐系统项目设计与...
基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与实现.zip基于Javaweb仓库管理系统项目设计与...
在讨论JavaWeb开发中如何使用jQuery与Ajax实现动态联级菜单效果之前,先对标题中提及的技术和概念做一下阐述。首先,JavaWeb开发指的是使用Java语言进行网络应用和网站的开发。在JavaWeb开发中,经常需要与前端技术...
在JavaWeb开发中,jQuery和Ajax是两种非常重要的技术,它们极大地简化了前端与后端的数据交互过程。jQuery是一个高效、简洁的JavaScript库,而Ajax则是实现页面无刷新更新的关键技术。本实例将深入讲解如何结合...
基于Javaweb的音乐网站的设计与实现论文(20210806154800).pdf
此资源与我的博客13_JavaWeb——AJAX中的两个案例对应,其中Demo5使用AJAX异步处理页面实现对用户输入的实时校验,Demo6使用Axios+JSON完成对品牌列表的展示和添加,取代了先前的JSP。希望有所帮助
基于JavaWeb的博客网站的设计与实现论文
### JavaWeb之Ajax与jQuery #### 一、Ajax概述 **Asynchronous JavaScript and XML (AJAX)** 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它并不是一项全新的技术,而是对现有技术的一种组合...
本文实例为大家分享了jQuery实现轮播图及其原理的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" name="viewport" content="width=device-width,...
总的来说,JavaWeb通过AJAX和JSON实现省市二级联动,涉及了前端的JavaScript技术、后端的JavaServlet处理和数据库操作。这一过程体现了前后端分离的思想,提高了页面的交互性和响应速度。理解并掌握这些技术,对于...
基于javaweb的仓库管理系统设计与实现源码+数据库.zip,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该...
总结,使用jQuery-webcam插件可以在网页上轻松实现摄像头拍照功能,它依赖于jQuery库,提供了一套简单的API来设置摄像头参数、捕获图像和上传照片。开发者可以根据项目需求灵活配置,提升网站或应用的互动性。通过...
基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计与实现任务书.pdf基于JavaWeb的博客网站的设计...