Javascript 重复满足条件时如何调用次函数一次
功能: 当检测到并满足初始条件时,调用辅助函数。因此,如果“(condition=true)”,将调用辅助函数。但是,在条件更改为false之前,只能调用次函数一次 因此,正确的行为是: 当初始条件仍然为“true”时,不应继续调用次函数,正确的行为是,当“condition=true”和“condition=false”时,只应调用一次次次,什么都不发生,下一个实例再次调用“condition=true”时,次函数将再次调用一次,直到条件=false为止 此时,我所做的是,在每一个“condition=true”中,它总是调用辅助函数=>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
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,请允许我测试它并理解和消化代码。