Javascript 重复满足条件时如何调用次函数一次

Javascript 重复满足条件时如何调用次函数一次,javascript,jquery,ajax,if-statement,conditional-statements,Javascript,Jquery,Ajax,If Statement,Conditional Statements,功能: 当检测到并满足初始条件时,调用辅助函数。因此,如果“(condition=true)”,将调用辅助函数。但是,在条件更改为false之前,只能调用次函数一次 因此,正确的行为是: 当初始条件仍然为“true”时,不应继续调用次函数,正确的行为是,当“condition=true”和“condition=false”时,只应调用一次次次,什么都不发生,下一个实例再次调用“condition=true”时,次函数将再次调用一次,直到条件=false为止 此时,我所做的是,在每一个“condi

功能:

当检测到并满足初始条件时,调用辅助函数。因此,如果“(condition=true)”,将调用辅助函数。但是,在条件更改为false之前,只能调用次函数一次

因此,正确的行为是: 当初始条件仍然为“true”时,不应继续调用次函数,正确的行为是,当“condition=true”和“condition=false”时,只应调用一次次次,什么都不发生,下一个实例再次调用“condition=true”时,次函数将再次调用一次,直到条件=false为止

此时,我所做的是,在每一个“condition=true”中,它总是调用辅助函数=>
location.reload(),这可能是错误的行为。因此,如果“condition=true”在10秒内为true,则在10秒内它将每秒刷新一次

因此,在这一点上,我被困在如何仅在“condition=true”时调用“location.reload()”一次,这样它将只刷新页面一次

因此,我需要帮助/指导,了解如何在“condition=true”时仅检测一次并调用函数一次

 var isInterrupt =false;
//Interval to keep asking the backend for sensor value: Hence, if sensor value returns a '1', it will call the function interrupt()
    setInterval(getFeedback,100);

    function getFeedback()
    {
        ajax_getArduinoFeedback("flash.do", "formType=getArduinoFeedback");
    }

    //Method call when data from Arduino is "1"
    function interrupt(){

        //location.reload();

        if (isInterrupt == false)
        {
            isInterrupt = true;
            //When data="1" at the arduino board, Video will reload and start playing

            location.reload();

        }
        isInterrupt=false;
    }

您必须在会话、cookie或中保留
isInterrupt
的记录

在脚本开始时,它将如下所示:

var isInterrupt = localStorage.getItem("isInterrupt"); /* false by default */
一旦在脚本中更改了值,也可以在
localStorage
中更改它:

localStorage.setItem("isInterrupt", "anything");
或者只是删除/取消设置它:

localStorage.removeItem("isInterrupt");
因此,完整的示例如下所示:

var savedInterrupt = localStorage.getItem("savedInterrupt");
setInterval(getFeedback,100);

function getFeedback() {
    ajax_getArduinoFeedback("flash.do", "formType=getArduinoFeedback");
}

function interrupt(){
    if( isInterrupt != savedInterrupt ) {
        localStorage.setItem("savedInterrupt", isInterrupt);
        location.reload();
    }
}
根据需要,您可能需要使用,它只持续一个会话。这两种方法都是相同的

虽然localStorage中存储的数据没有过期设置,但是 当页面会话结束时,in sessionStorage将被清除


我是否需要在“”中传递该方法,然后为此,我是否仍然需要在条件语句中声明isInterrupt=true?我有点困惑,但您在哪里设置:
localStorage.setItem(“isInterrupt”,“任意”)
localStorage.removietem(“isInterrupt”)我看不到您在哪里将
isInterrupt
设置回
false
?我无法创建完整的示例。我的初始isInterrupt声明为false。如果中断设置为if语句之外的ALSE OK,请允许我测试它并理解和消化代码。