xmcase
xmcase
  • 发布:2015-06-08 09:43
  • 更新:2019-06-06 09:48
  • 阅读:3041

在plusRead函数内注册了一个resume事件,但此事件的函数会多次触发

分类:HTML5+

var needCheckVersion = true;  
function getVersion(){  
    if(needCheckVersion!=true){  
        return false;  
    }  
    needCheckVersion = false;  

    $.ajax({      
        type:'post',          
        url:baseUrl+'/api/work.php?act=getVersion&t='+new Date(),      
        data:'',  
        dataType:'json',                      
        success:function(data){  
            //  
            //needGetVersion = true;  
            console.log("load done"+needCheckVersion);  
            var v = localStorage.version;  
            //console.log(v+'=='+data.v);  
            if(v!=data.v){  
                alert('有新版本,请到设置里点击在线更新进行更新 !');  
            }  
            //可能重装安装以后,localstorage数据就被清掉了  
            localStorage.new_version = data.v;  

        }      
    });  
}  

function plusReady(){  
    //从后台切换到前台时执行  
    document.addEventListener( "resume", resumeCallback);  
    function resumeCallback(){  
        console.log("resume");  
        getVersion();  
    }  
        //从前台切换到后台  
    document.addEventListener( "pause", pauseCallback );  
    function pauseCallback(){  
        console.log("pause");  
        needCheckVersion = true ;     
    }  
}

代码如上,getVersion函数会触发2次或者3次,就算加了一个变量(needCheckVersion)来限制只触发一次,也不行,不知道什么原因?
会不会是因为多线程同时运行,所以就算限制了也会在不同的线程里触发?

2015-06-08 09:43 负责人:无 分享
已邀请:
祺佑

祺佑

我也碰到这个问题,为什么没人解答

chender

chender - 与人为善

先确定一下绑定监听的代码是不是被执行了多次,如果确实只执行了一次,那估计就是官方框架的问题了

船夫水手

船夫水手

有人解答吗?求解

6***@qq.com

6***@qq.com

我也碰到了这个问题,resume事件会被执行2次。

hylong

hylong

排查下看是不是代码重复执行了。如果还有问题,上传一个能重现问题的简单示例。

  • 6***@qq.com

    /**




    • 运行环境从后台切换到前台事件

      */

      document.addEventListener("plusready", onPlusReady, false);


          function onPlusReady() {  
      document.addEventListener("resume", onAppReume, false);
      }

      function onAppReume() {
      pulldownRefresh();
      }


    2018-01-05 15:47

  • hylong

    回复 6***@qq.com:单独运行没发现有问题。你是在什么环境下运行的

    2018-01-05 15:50

  • 6***@qq.com

    ios环境下运行,android的还没有试

    2018-01-05 15:53

Viccy

Viccy

没人解答这个问题吗

1***@qq.com

1***@qq.com

这个问题都不解决了吗。。

1***@qq.com

1***@qq.com

深渊巨坑的地方 你要在vue 定义个变量 然后监听变量 在变量改变之后在执行方法 ,超级坑爹

1***@163.com

1***@163.com - 90后前端菜鸟

resume的次数是不是等于页面打开的个数?

1***@163.com

1***@163.com - 90后前端菜鸟

我也出现了这个问题,后来我发现是监听事件写在了onShow里面,会执行了多次,把监听事件写在onload里就没问题了

该问题目前已经被锁定, 无法添加新回复