基本思路:

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 前台实时监控后台程序运行的更多相关文章

  1. java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

    首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...

  2. 远程监控 – 应用程序运行状况测量 CSF 博客

    在远程监控基础知识和故障排除中,我们探讨了 Windows Azure 平台提供的基础指标.信息源.工具和脚本,介绍了有关监控和应用程序运行状况的基本原则.我们演示了如何利用这些基本原则对在 Wind ...

  3. Java之Property-统获取一个应用程序运行的次数

    package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  4. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! IDEA [适合公司业务]全网最详细的IDEA里如何正确新建[普通或者Maven]的Java web项目并发布到Tomcat上运行成功[博主强烈推荐](类似eclipse里同一个 ...

  5. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  6. JAVA Web从前端到后台常用框架介绍

    原博客:https://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evank ...

  7. java web项目发生异常依然能运行

    由于JavaWeb应用业务逻辑的复杂性,容易发生一些意想不到的错误和异常,给系统的调试带来不必要的麻烦,不友好的提示信息使编程者对错误和异常无从下手.特别是当发生异常时,Java异常栈输出的信息只能给 ...

  8. GCD之后台程序运行

    点击Home键进入后台时进行计时,直到从新启动,超过三分钟启动手势 // // AppDelegate.m // GCDDown // // Created by City--Online on 15 ...

  9. java+selenium打开浏览器实现后台静默运行

    简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...

随机推荐

  1. LintCode2016年8月22日算法比赛----平面列表

    平面列表 题目描述 给定一个列表,该列表中的每个要素要么是个列表,要么是整数.将其变成一个只包含整数的简单列表. 注意事项 如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表. 样例 给定 ...

  2. MUI框架-10-MUI 数据交互-跳转详情页面

    MUI框架-10-MUI 数据交互-跳转详情页面 上一篇介绍了如何实现数据交互,给别人的 API 发送 ajax 请求,我们得到数据,再使用 art-template 模板引擎拼接 HTML,最终实现 ...

  3. MyBatis基本配置和实践(五)

    第一步:创建一个Maven工程 第二步:编辑Maven工程的pom.xml,引入mybatis-generator-maven-plugin <?xml version="1.0&qu ...

  4. Android知识点滴

    今天,把新作的布局状态魅族机上进行测试 发现了一个BUG,造成闪退. 看了下log,一个布局造成的. 开始分析这个布局造成这个问题的原因. 开始艰难的调试过程. 代码注释大法,发现这个问题是一个tex ...

  5. javascript使用web proxy来实现ajax cross-domain通信

    在现代浏览器中,都强加了对javacript代码的访问限制,比如一个页面的js无法向非同源的url实现ajax请求,获得数据.在这时,是浏览器端会报错: No 'Access-Control-Allo ...

  6. leetcode Ch6-Data Structure

    1. Sliding Window Maximum class Solution { public: vector<int> maxSlidingWindow(vector<int& ...

  7. ASP.NET Core 2.1以上 Bootstrap 4前端模板文件,开发环境与发布环境前端模板 environment的使用

    笔者的前端文件如下 笔者增加Bootstrap 4 和 FontAwersome(字体图标),因为Bootsrap 4已经不再包含图标了. ASp.Net Core 中,通常在 _Layout.csh ...

  8. CentOS使用PXE网络启动自动安装操作系统

    PXE工作原理简介 PXE (Preboot Excution Environment) 预启动执行环境 工作环境介绍: 要实现PXE自动网络安装CentOS至少需要两台主机 1)PXE服务器PXE ...

  9. 深入浅出VisualStudio——使用NuGet来安装AjaxControlToolKit

    使用NuGet可以加速配置Visual Studio 2010的开发环境. 1.创建一个空的ASP.NET web站点项目. 2.右键单击此web 站点,选择Manage NuGet Packages ...

  10. [EffectiveC++]item24:若所有参数皆需类型转换,请为此采用non-member函数

    Declare non-member functions when type conversions should apply to all parameters. 104页 只有当参数被列于参数列( ...