JAVA WEB 前台实时监控后台程序运行
基本思路:
1. 操作状态在类中以静态变量方式(或公共类存储公共变量方式,SESSION方式、COOKIE方式)存在
2. 前台采用AJAX方式激发后台进行业务逻辑操作,并实时更新操作状态信息
3. 前台定时取后台操作状态并显示
4. 在获取最后操作结果后结束定时器
示例:
1. 前台采用进度条方式进行显示,定义如下
<div id="progressbarShow" data-toggle="topjui-progressbar"></div>
2. 后台设置操作状态,以静态变量方式为例
private static int value = 0;
private static String msg = "";
3. 后台业务逻辑实时更新操作状态,如
private String test() {
//重置操作状态
value = 0;
msg = "reading";
// 设置操作返回值
JSONObject jsonObject = new JSONObject();
jsonObject.put("title", "提示信息");
try {
//循环业务逻辑代码;
value = *****;
msg = ******;
//循环任务结束
jsonObject.put("statusCode", 200);
jsonObject.put("message", "操作成功");
} catch (InterruptedException e) {
e.printStackTrace();
jsonObject.put("statusCode", 300);
jsonObject.put("message", "操作失败");
}
return jsonObject.toString();
}
4. 后台实时监控方法,如
private String checkStatus() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("value", value);
jsonObject.put("msg", msg);
return jsonObject.toString();
}
5. 前台调用并实时监控,如
// 设置定时器
var testTimer;
// 关闭定时器
clearInterval(testTimer);
// 开启定时器实时监控
testTimer = setInterval(function(){
loadProcess();
}, 500);
// 实时监控程序
function loadProcess(){
$.getJSON("indexHandle.jsp?flags=checkStatus", function (data) {
$('#progressbarShow').iProgressbar('setValue', data.value);
});
}
// 激发后台业务逻辑处理
$.getJSON("indexHandle.jsp?flags=test", function (data) {
if(data.statusCode){
// 操作成功后相关处理
} else {
// 操作失败后相关处理
}
// 重置进度条状态
$('#progressbarShow').iProgressbar('setValue',0);
// 关闭定时器
clearInterval(testTimer);
});
JAVA WEB 前台实时监控后台程序运行的更多相关文章
- java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)
首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...
- 远程监控 – 应用程序运行状况测量 CSF 博客
在远程监控基础知识和故障排除中,我们探讨了 Windows Azure 平台提供的基础指标.信息源.工具和脚本,介绍了有关监控和应用程序运行状况的基本原则.我们演示了如何利用这些基本原则对在 Wind ...
- Java之Property-统获取一个应用程序运行的次数
package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...
- 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...
- 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...
- JAVA Web从前端到后台常用框架介绍
原博客:https://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evank ...
- java web项目发生异常依然能运行
由于JavaWeb应用业务逻辑的复杂性,容易发生一些意想不到的错误和异常,给系统的调试带来不必要的麻烦,不友好的提示信息使编程者对错误和异常无从下手.特别是当发生异常时,Java异常栈输出的信息只能给 ...
- GCD之后台程序运行
点击Home键进入后台时进行计时,直到从新启动,超过三分钟启动手势 // // AppDelegate.m // GCDDown // // Created by City--Online on 15 ...
- java+selenium打开浏览器实现后台静默运行
简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...
随机推荐
- IOS地理信息使用
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...
- activiti查询
一 1.根据当前任务id获得当前任务对象 Task task = processEngine.getTaskService().createTaskQuery().taskId(taskId).s ...
- 【眼见为实】自己动手实践理解数据库READ COMMITTED && MVCC
[READ COMMITTED] 首先设置数据库隔离级别为读已提交(READ COMMITTED): set global transaction isolation level READ COMMI ...
- 数值的整数次方(C++ 和 Python 实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 实现函数 double Power(double base, ...
- SQL SERVER占用CPU过高优化S
https://www.cnblogs.com/yuekong2010/p/6628001.html 然后使用下面语句看一下各项指标是否正常,是否有阻塞,正常情况下搜索结果应该为空. 1 SELECT ...
- Avalon探索之旅
avalon2是一款基于虚拟DOM与属性劫持的 迷你. 易用. 高性能 的 前端MVVM框架, 拥有超优秀的兼容性, 支持移动开发, 后端渲染, WEB Component式组件开发, 无需编译, 开 ...
- Java学习-0
Java简单介绍 第一个程序Hello World 基本数据类型 对象和类 数据声明 函数声明 参数传递 Java简单介绍 Java的优点:简单.可移植性 JDK (Java Development ...
- 同时对view延时执行两个动画时候的现象
同时对view延时执行两个动画时候的现象 对于view延时执行了两个动画后,会将第一个动画效果终止了,直接在第一个动画的view的最后的状态上接执行后续的动画效果,也就是说,我们可以利用这个特性来写分 ...
- golang 时间戳 时间格式化 获取当前时间 timestamp 计算时间差
获取当前时间 func Now func Now() Time 1 Now returns the current local time. func (Time) UTC func (t Time) ...
- C#:安装Windows服务,动态指定服务名及描述(转载)
来源:http://www.cnblogs.com/Fooo/p/3476675.html Installer.cs public Installer() { InitializeComponent( ...