疯狂的百度 2022-01-18 13:41 采纳率: 46.7%
浏览 33

关于setInterval运行一段时间后原本定时15s最终变成大于15s一分钟执行一轮

关于setInterval运行一段时间后原本定时15s最终变成变成规律的一分钟执行一轮,ajax 1s就回复了忽略不考虑。


var it = null;
$.ajax({
        type : 'POST',
        url : '',
        data : {
        },
        success : function(data) {
            if(data != null && data != ""){
            it = setInterval('refreshQuery()', 15000);
            }else{
                    clearInterval(it)
                }

            }
        }

function refreshQuery() {
    console.log("心跳开始时间"+new Date())
    var dataStr = '';
    $.ajax({
        type : 'POST',
        dataType : "text",
        url : '',
        data : {

        },
        success : function(data) {
            console.log("心跳回复时间"+new Date())

        }
    })
}

修改正常之后代码加入以下代码就正常了
clearInterval(it)
it = setInterval('refreshQuery()', 15000);

function refreshQuery() {
    console.log("心跳开始时间"+new Date())
    var dataStr = '';
    $.ajax({
        type : 'POST',
        dataType : "text",
        url : '/pqs9000/device/socketon',
        async : true,
        data : {
            message : dataStr,
            lineIndex:lineIndex
        },
        success : function(data) {
            console.log("心跳回复时间"+new Date())


            **clearInterval(it)
            it = setInterval('refreshQuery()', 15000);**


        }
    })
}

  • 写回答

2条回答 默认 最新

  • 归来巨星 前端领域新星创作者 2022-01-18 13:54
    关注

    你的ajax请求也同样需要时间呀?

    逻辑上来说你对应的时间应该是 15s + ajax 请求后台返回的时间 所以会导致对应的时间可能会有一些出入

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 1月18日
  • 创建了问题 1月18日

悬赏问题

  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 如何卸载arcgis 10.1 data reviewer for desktop
  • ¥15 共享文件夹会话中为什么会有WORKGROUP
  • ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
  • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题