
正文
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);
});







