clearInterval()-JavaScript中的方法-它到底是如何工作的?
我有一个脚本,它等待加载特定的DOM元素,并在加载时附加另一个HTML元素:clearInterval()-JavaScript中的方法-它到底是如何工作的?,javascript,Javascript,我有一个脚本,它等待加载特定的DOM元素,并在加载时附加另一个HTML元素: var checkExistVOID = setInterval(function() { if( $('#voidDocumentsAwaitingMyApproval').length && $('#voidDocumentsAwaitingMySignature').length ) { $("#loadingBarPolarion1").hide(); $('<sp
var checkExistVOID = setInterval(function() {
if( $('#voidDocumentsAwaitingMyApproval').length && $('#voidDocumentsAwaitingMySignature').length ) {
$("#loadingBarPolarion1").hide();
$('<span style="font-size: 14px;"><i style="color: lightgreen; padding-right: 10px;" class="fas fa-check"></i>Currently no Document Actions required</span>').appendTo('#voidDocumentsAwaitingMyApproval');
clearInterval(checkExistVOID);
}
}, 500);
乍一看,它似乎工作正常,但如果执行页面的站点在没有任何用户操作的情况下保持打开状态约30分钟,append
-功能会在循环中每隔500毫秒执行一次:
我在想,这会是什么问题?是否有可能clearInterval()
突然不再“存储”
你能建议我如何改变我的功能以避免遇到这个问题吗
我正在考虑对已经退出的
-元素进行额外检查,并在if
-函数中使用它,但我想这不是一个专业的解决方案:)您正在有条件地清除间隔。如果不满足该条件,则不会清除间隔
我的目标是只触发这个函数一次
你应该改用 您正在有条件地清除间隔。如果不满足该条件,则不会清除间隔
我的目标是只触发这个函数一次
你应该改用 “我的目标是只触发此函数一次”:请改用setTimeout()
。您正在有条件地清除间隔。如果不满足条件,间隔将不会被清除。@RobbyCornelissen:非常感谢您的评论。因此,我只需要将setInterval()
更改为setTimeout()
,这就是神奇之处?使用setTimeout()
是的。无需将其分配给变量,也无需清除它。这就是“我的目标是只触发此函数一次”的所有神奇之处:改用setTimeout()
。您正在有条件地清除间隔。如果不满足条件,间隔将不会被清除。@RobbyCornelissen:非常感谢您的评论。因此,我只需要将setInterval()
更改为setTimeout()
,这就是神奇之处?使用setTimeout()
是的。无需将其分配给变量,也无需清除它。这就是所有的神奇之处,谢谢!我会试一试,然后再回到你身边:)谢谢!我会尝试一下,然后再回到你身边:)
clearInterval()