Javascript 如何在应用程序打开时创建一次性事件?

Javascript 如何在应用程序打开时创建一次性事件?,javascript,jquery,ios,cordova,Javascript,Jquery,Ios,Cordova,我正在使用phonegap开发一款iPhone应用程序。 当用户打开应用程序并转到主页面时,我想调用一个函数将应用程序数据库与活动数据库同步。此函数只应被调用一次。i、 e.即使用户再次单击主页,该函数也不应被调用,因为它已经被调用了 我想在ondevicerady()函数下调用此函数 function onDeviceReady() { if(test.called) { return false; }else{ test();

我正在使用phonegap开发一款iPhone应用程序。 当用户打开应用程序并转到主页面时,我想调用一个函数将应用程序数据库与活动数据库同步。此函数只应被调用一次。i、 e.即使用户再次单击主页,该函数也不应被调用,因为它已经被调用了

我想在ondevicerady()函数下调用此函数

   function onDeviceReady()
{
    if(test.called) {
        return false;
    }else{
         test();
    }
}

function test(){
 test.called = true;}
我使用了上面的概念,但是当我点击不同的页面,然后点击主页时,这个函数会再次被调用。i、 因为它刷新页面,所以将值设置为false


当应用程序启动时,我应该使用什么事件只调用函数一次?

我建议您使用会话存储:

function onDeviceReady()
{
    if(sessionStorage.getItem("isSync") === "true") {
        return false;
    }else{
        test();
        sessionStorage.setItem("isSync", "true");
    }
}

只要浏览器处于打开状态,会话存储器就会存储该标志,只要PhoneGap应用程序处于打开状态。

它是单页应用程序吗?编辑:可能不像你说的那样,它会刷新。我建议将国旗存放在sessionStorage.No中。共有4页。我正在仪表板(我的应用程序主页)上调用此函数。我尝试了你的代码。这对我不起作用。我的意思是,当我在不同的页面上单击并再次在仪表板上单击时,该函数被调用。请重试,将其与布尔字符串进行比较,而不是与我编辑的答案中的纯布尔值进行比较