热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

移动端webview定时器自动停了

问题描述移动端webview切到后台后,timer五分钟自动停了

问题描述
移动端webview切到后台后,timer五分钟自动停了



我们在做一个业务过程中,需要每隔一段时间去轮询业务里面的一个状态,只要状态没有到,就一直轮询下去,所以用了settimeout

以下补充一点做过的工作
注意:这里虽然是轮询,但是考虑到setInterval不能保证前面执行的回调已经执行完了,所以选择用了setTimeout,当然出现了这个问题之后我换了setInterval也一样,程序在轮询5分钟后,自动停了



补充点业务知识
我们这个是证券开户的双向视频-视频见证,就是视频连线,见证人(券商团队员工)、开户人两者之间的视频通话,由于这个过程要持续几分钟时间,直到见证人审核通过,在业务后台修改对应的状态,接口一直轮询到这个状态变更才会停止视频见证
用户一般是手机app,里面内嵌H5页面
见证人是pc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 状态码 ,直到status=1,停止轮询



let status = 0

let timer = null;



function fun() {

    //请求接口,判断是否变化

    todo

    if(status ==1){

        clearInterval(timer)

        todo

    }

    if(status==0){

    // 10秒后改变状态码值

        clearInterval(timer)

        timer = setTimeout(() => {

            fun()

        }, 10000)

    }

}

问题出现的环境背景及自己尝试过哪些方法
目前只出现在华为Mate20手机中

相关代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 请把代码文本粘贴到下方(请勿用图片代替代码)



// 状态码 ,直到status=1,停止轮询

let status = 0



function fun() {

    //请求接口,判断是否变化

    if(status ==1){

        clearInterval(timer)

    }

    if(status==0){

    // 10秒后改变状态码值

        clearInterval(timer)

        let timer = setTimeout(() => {

            fun()

        }, 10000)

    }

}

你期待的结果是什么?实际看到的错误信息又是什么?
期待的结果就是,程序一直轮询下去,直到状态改变

补充一点测试细节:
假如延迟5秒执行,一般会在4分55秒停,就是说会在最后一次轮询到五分钟的时候,停止
如果延时6秒执行,一般会在4分54秒自动停


   



推荐阅读
  • 前段时间做一个项目,需求是对每个视频添加预览图,这个问题最终选择方案是:用canvas.toDataYRL();来做转换获取视频的一个截图,添加到页面中,达到自动添加预览图的目的。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 一、什么是闭包?有什么作用什么是闭包闭包是定义在一个函数内部的函数,它可以访问父级函数的内部变量。当一个闭包被创建时,会关联一个作用域—— ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • python+selenium十:基于原生selenium的二次封装fromseleniumimportwebdriverfromselenium.webdriv ... [详细]
  • Ansibleplaybook roles安装redis实例(学习笔记二十九)
    1、相关redis参数:2、templatesredis.conf配置相关参数:daemonizeyespidfilevarrunredis_{{red ... [详细]
  • html和js代码互转,html转html5
    本文目录一览:1、html网页跳转javascript代码实现 ... [详细]
author-avatar
raymondxiao518
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有