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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM