文档章节

java ajax长轮询

大笨淡
 大笨淡
发布于 2015/02/28 15:44
字数 359
阅读 112
收藏 0

长轮询就是客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。        

前端代码:

$.ajax({

type: "post", //AJAX请求类型  

               url: "massGraphic/selectCode.do", //请求url  

               cache: false,  //无缓存  

               timeout: 1000 * 300,  //AJAX请求超时时间为30秒  

               data: { "time": 300, "scene_id": data.scene_id }, //参数time时间为最多等待(后台保持)时间(60秒无论是否有数据立即返回),单位为秒。userID判断诗句是否为新数据的标识  

               success: function (data) {  

                if(data==0){

                layer.alert("发送预览成功!",1);

                }else{

                layer.alert("300秒内没有扫描 自动关闭!");

                }

                $("#wx-num").hide();

                flag = true;

               }

});

后端代码:

@RequestMapping("selectCode")

public void selectCode(Integer time,Integer scene_id,HttpSession session,HttpServletResponse response) throws Exception{

User currentUser = (User) session.getAttribute("currentUser");

Code code  = new Code();

code.setUser_id(currentUser.getUser_id());

code.setScene_id(scene_id);

int json = 1;

Integer i=0;

while(true){

Thread.sleep(3000);//停留三千毫秒(3秒)  

             i++;  

             if(i<time)

             {

            json = massInfoService.selectCode(code);//当没有查询到这个值得时候就说明客户扫描二维码成功了 返回0

            if(json==0){

            break;

            }

             }

             else

             {

            break;

             }

}

ResponseUtil.write(response, json);

}


长轮询比普通轮询优点在于在无消息的情况下不会频繁的请求,耗费资源小。        

希望我写的对你有帮助~

© 著作权归作者所有

共有 人打赏支持
大笨淡
粉丝 0
博文 4
码字总数 1241
作品 0
南京
私信 提问
PHP监控后台程序 生成进度条

// 这里的页面采用ajax轮询的方式 php获取java生成进度条文件。 //后台处理采用java 生成进度条文件。 后台监控如下: 启用了3个线程 几乎把服务器给榨干了。 [root@localhost wcms]# ps -e...

大灰狼wow
2014/04/10
0
0
Web端服务器推送技术原理分析

1 背景 “服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系。...

wersdffg
2015/02/11
0
1
使用 Java 实现 Comet 风格的 Web 应用

探索 Comet 开发的不同实现。看看 Jetty 和 Tomcat 之类的流行 Java™ Web 服务器如何支持 Comet 应用程序,并了解如何为不同的服务器编程。最后,了解 Java 中有关 Comet 的标准化建议,这些...

红薯
2009/07/28
2.2K
7
使用 WebSockets 来实现 Dashboards

仪表盘在监控系统和运行环境时是一种非常重要的工具.通常的做法是客户端实时更新来自服务端的数据.这种做法在网页上最常用的技术是ajax轮询.使用ajax时,客户端每隔一段时间就请求服务器以更新...

oschina
2013/06/25
1K
1
webqq更新——采用反向AJAX实现在线人员上下线模拟

原文: http://www.abigdreamer.com/mywork/webqq-update-online-reverse-ajax-implementation-off-the-assembly-line-simulation.html 本blog已转移到造梦师http://www.abigdreamer.com,欢......

暗之幻影
2015/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
12
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
13
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
18
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
11
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部