完成计时器的暂停和继续

今天完成了一个报警弹窗功能的修改,因为功能是使用定时器进行ajax请求获取数据的,定时器定时请求会造成页面的闪烁,请求到一定时间页面请求速度变快(未解决),所以利用弹窗弹出的时候关闭定时器,弹窗关闭的时候再重新开启定时器,由于定时器多个页面都要使用,所以统一在layout中写入。弹出窗口和关闭窗口是两个不同的方法,利用变量不声明直接使用的方式来获取定时器句柄 

    //关闭弹窗
    function ClosePopup(i, num) {
        $(".FloorGiveInfoClose_" + i).remove();
        document.getElementById("sound").src = "";
        $.post("/ALAPerimeterRecord/UpdateAlarmState", { DeviceNumber: num }, function (res) { })
        Timer = setInterval('BiogasConcentration()', 3000);
    }

 

下面是调用定时器

  //沼气达到一定条件报警
    var Timer = setInterval('BiogasConcentration()', 3000);
    function BiogasConcentration() {
        var data = {
        }
        $.ajax({
            type: "POST",
            url: "/ALAPerimeterRecord/BiogasConcentration?r=" + Math.random(),
            data: data,
            success: function (result) {
                if (result == "") {
                    return;
                }
                var obj = JSON.parse(result);
                if (obj.length > 0) {
                    document.getElementById("sound").src = "../../audio/纯音乐%20-%20消防警报声.mp3";
                    for (var i = 0; i < obj.length; i++) {
                        $("#VidelDivHtml").css("display", "none");

                        var text = '<div class="body_window FloorGiveInfoClose_' + i + '" style=" display:block;">' +
                    '<div>' +
                        '<div class="window_title">' +
                    '告警信息' +
                        //  '<img src="../../img/home/on_window.png" onclick="AlarmWaterRecord(' + i + ',' + obj[i].Area + ')"  alt="">' +
                    ' </div>' +
                    '<div class="window_div">' +
                    ' <div class="window_div_top1">' +
                    ' <img src="../../img/home/logo_window.png" alt="">' +
                    '  <div>' +
                    '  <div>【沼气浓度报警】' + obj[i].DeviceName + ' ' + (obj[i].DeviceCode == 1 ? "" : ':沼气浓度:' + obj[i].DeviceValue + '') + '</div>' +
                    '  <div>时间:' + obj[i].CreateTime + '</div>' +
                    ' </div>' +
                    ' </div>' +
                    ' <div class="window_button">' +
                    '   <div>' +
                    '       <div class="button_1" onclick="ClosePopup(' + i + ',' + 1 + ')">' +
                    '          确认并关闭' +
                    '       </div>' +
                    '   </div>' +
                    ' </div>' +
                    '  </div>' +
                    ' </div>' +
                    '</div>';
                        $("#FloorGiveInfoClose").append(text);
                        console.log($("#sound").attr("src"));
                        if ($("#sound").attr("src") != "") {
                            clearTimeout(Timer)
                        }
                        setTimeout("ClosePopup(" + (i) + ",'" + obj[i].Area + "')", 30000);
                    }
                }
            }
        })
    }

 

posted @ 2021-11-05 11:38  咳咳Pro  阅读(232)  评论(0)    收藏  举报