javaWeb与Jquery ajax长轮询简单实现
来源:互联网 发布:超链接调用js函数 编辑:程序博客网 时间:2024/05/20 13:04
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();}}}
- javaWeb与Jquery ajax长轮询简单实现
- 【JavaWeb开发】使用Jquery与Ajax实现动态联级菜单
- 利用JQuery实现简单AJAX
- Jquery简单地实现ajax
- javaweb+jQuery ajax实例
- JavaWeb-Servlet实现ajax
- 传智播客 AJAX简单应用之JQuery实现
- ajax+jQuery+Javascript实现简单二级联动
- jquery 实现简单的Ajax例子
- ajax+jquery实现简单的数据交互
- 最简单的jQuery与ajax
- 基础的ajax实现与jquery实现
- 原生Ajax实现与Jquery实现
- 基于jQuery与PHP实现Ajax长轮询(LongPoll)
- 用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信
- 用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信
- jquery与php结合实现AJAX长轮询(LongPoll)
- 使用JSON与JQuery实现Ajax
- js继承
- Largest prime factor
- Hdu 1007 - Quoit Design//分治,最近点对,计算几何
- WS2008安装IIS7时提示安装失败,错误代码0x80070643解决方案
- hdu 1258 Sum It Up
- javaWeb与Jquery ajax长轮询简单实现
- 安装和卸载显卡驱动
- hdu 3650 Hot Expo
- 基于ping命令的网络故障排查方法
- #Sam有话说#产品有源
- 完全重新安装IIS7
- android invalidate 执行流程详解
- Flex Tree 如何在不选定节点的情况下进行添加(Demo)
- Resource is out of sync with the file system错误解决