ajax异步监控

最近,在JSF中处理新图表和图表“导出服务”时,我遇到了一个非常普遍的问题。 当您执行长时间运行的任务(操作)时,您希望在开始时显示一个状态“请稍候……”对话框,并在响应到达时结束时关闭此对话框。 对于AJAX请求,这不是问题,但对于将一些二进制内容流式传输到浏览器的非AJAX请求而言,则是有问题的。 要解决此问题,我们可以使用与PrimeFaces中的FileDownload组件相同的技术。 我们可以设置一个特殊的cookie作为响应,并在客户端定期检查此cookie(如果已设置)。 设置此Cookie后,我们可以关闭打开的“之前”对话框。 可以在JSF中将cookie设置为:

// set cookie to be able to ask it and close status dialog for example
FacesContext.getCurrentInstance().getExternalContext().addResponseCookie("cookie.chart.exporting", "true", Collections.<String, Object>emptyMap());

Non AJAX按钮执行一个JavaScript函数(例如monitorExporting),它具有两个参数,这些参数表示在请求/响应生命周期的开始和结束时要调用的另一个JavaScript函数。

<p:commandButton value="Export to PNG" ajax="false" action="#{combiChartController.exportToPng}"onclick="monitorExporting(start, stop)"/>

PrimeFaces已经提供了一些方法来检查是否启用了cookie,以获取和删除它们。 所以,我们可以写

function monitorExporting(start, complete) {if(PrimeFaces.cookiesEnabled()) {if(start) {start();}window.chartExportingMonitor = setInterval(function() {var exportingComplete = PrimeFaces.getCookie('cookie.chart.exporting');if(exportingComplete === 'true') {if(complete) {complete();}clearInterval(window.chartExportingMonitor);PrimeFaces.setCookie('cookie.chart.exporting', null);}}, 150);}
}

使用setInterval(…)定期询问cookie。 功能开始显示“请稍候……”对话框,功能停止将其关闭。

<script type="text/javascript">
/* <![CDATA[ */function start() {statusDialog.show();}function stop() {statusDialog.hide();}
/* ]]> */
</script>

如果禁用了cookie,则当然不会显示任何内容,但是通常很少见。

参考: 监视整个页面,非AJAX,要求从我们的JCG合作伙伴 Oleg Varaksin 收到 有关软件开发博客上的想法的 通知 。

翻译自: https://www.javacodegeeks.com/2013/07/monitor-full-page-non-ajax-requests-to-be-notified.html

ajax异步监控

ajax异步监控_监控整页(非AJAX),需要通知相关推荐

  1. springcloud工作笔记106---eureka实现服务监控_监控服务下线_服务注册_服务续约_判断注册中心可用_监控eurekaserver启动

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 在一些业务场景下,需要对服务的上下线进行监控,比如上下线都需要进行邮件通知,可以通过eureka提 ...

  2. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

  3. java 内存 监控_监控JVM内存使用情况

    1.使用jstat命令查看堆内存的使用情况 jstat 命令选项 vmid 间隔时间 查询次数 1.查看当前进程Class类加载的统计 jstat -class ***** 2.查看编译统计 jsta ...

  4. openfalcon 组件监控_监控软件之open-falcon

    一.open-falcon介绍 1)中文社区介绍 http://book.open-falcon.org/zh_0_2/intro/ 视频连接:http://www.jikexueyuan.com/c ...

  5. mysql 主从复制 监控_监控MySQL主从复制状态的脚本

    思路是通过show slave status这条命令来查看主从复制的状态,然后根据状态字段的值进行判断. show slave status\G; #显示slave状态; slave_IO_Runni ...

  6. mysql表损坏监控_监控mysql启动情况并检测表错误修复

    给开发部同事用的测试服务器上MYSQL经常挂掉...都懒得理了..写了个脚本自己检测错误修复表继续运行..邮件报警功能等有空再补上去... #!/bin/env bash PATH=/bin:/sbi ...

  7. Mycat监控_监控平台Mycat-web配置指标_作为配置中心注册发现用---MyCat分布式数据库集群架构工作笔记0038

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们再去看这个mycat-web怎么用 点击配置,这里配置我们zookeeper的ip和端口 ...

  8. Mycat监控_监控平台安装Mycat-web_作为配置中心注册发现用---MyCat分布式数据库集群架构工作笔记0037

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 下面咱们去安装mycat-web 先把mycat-web上传到opt下 然后解压

  9. Mycat监控_监控平台安装zookeeper_作为配置中心注册发现用---MyCat分布式数据库集群架构工作笔记0036

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 好咱们去安装zookeeper,这个很简单 首先看看这个zookeeper的官网,然后 这里点击d ...

最新文章

  1. 自由自在讲述小资与冰淇淋的美丽生活
  2. 26、临时表的创建和重复数据的处理
  3. ftp文档服务器设置,ftp服务器基本设置
  4. 调侃面向对象编程的23种设计模式(转)
  5. LVS——TUN隧道模式(负载均衡)
  6. 数据结构上机实践第五周项目1- 建立顺序栈算法库
  7. python中if continue else,python基础;if else;for;while 分支处理.continue,break
  8. 360修复上不了网络连接服务器失败,360断网急救箱网络连接配置修复不了怎么办-修复不了的解决办法...
  9. 计算机分屏功能吗,电脑分屏显示
  10. 【前端框架】当前基于bootstrap框架的几种主流前端框架
  11. 软件工程之高质量代码(编码规范)
  12. 【Books系列】之第二本书:大冰《我不》读书笔记和读后感
  13. Python 计算一年有多少秒
  14. 【JNLP】什么是JNLP
  15. 人生不过是生老病死,我也是没活成想要的样子
  16. html5在线客服源码 websocket c# socket 实现,可扩展 im 即时通讯 完整的源代码,在线聊天
  17. Word中邮件功能的使用
  18. skimage.measure.label和skimage.measure.regionprops()
  19. SciChart v5.4 - v6.0-alpha keygen-SEO狼术
  20. 【案例实践】高光谱遥感数值建模技术及在植被、水体、土壤信息提取领域应用实践技术

热门文章

  1. 动态规划训练20 [Treats for the Cows POJ - 3186 ]
  2. 去 BAT 面试,总结了这 55 道 MySQL 面试题
  3. 深入Java集合系列之五:PriorityQueue
  4. Java 调用EXE
  5. 《四世同堂》金句摘抄(十四)
  6. 涨知识 | 100个中国最难读的地名,第一个就折了
  7. c语言关于计算的函数,问个c语言题目,关于一个计算器的有参有返回函数!!!...
  8. weex安装环境_WEEX跨平台开发环境搭建
  9. (转) SpringBoot接入两套kafka集群
  10. Mybatis报错:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found