使用无限JavaScript循环创建计划报告
我正在尝试创建一个新的计划报告,对此我有一个疑问:我如何才能在它上面创建一个脚本,其中包含每10秒运行一个函数的循环?比如:使用无限JavaScript循环创建计划报告,javascript,report,cognos,Javascript,Report,Cognos,我正在尝试创建一个新的计划报告,对此我有一个疑问:我如何才能在它上面创建一个脚本,其中包含每10秒运行一个函数的循环?比如: var value = 1; while(value > 0){ setTimeout(function(){myFunction()},10000); value = value -1; } 当我刚刚将我的报告运行到ReportStudio时(没有计划),该脚本会成功执行,但在计划之后它就不再工作了。有人知道为什么会这样,或者有其他想法吗 提前感
var value = 1;
while(value > 0){
setTimeout(function(){myFunction()},10000);
value = value -1;
}
当我刚刚将我的报告运行到ReportStudio时(没有计划),该脚本会成功执行,但在计划之后它就不再工作了。有人知道为什么会这样,或者有其他想法吗
提前感谢。使用代替
此外,不需要while循环
用这个代替:
setInterval(myFunction,10000)代码>如果要保持相同的结构,可以使用setTimeout
使其稍微递归:
var repeatedFunction = function(){
// Do something
setTimeout(repeatedFunction, 10 * 1000);
};
但是您最好使用setInterval
:
setInterval(function(){
// do something
}, 10 * 1000);
如果需要取消,请存储时间间隔:
var repeatedFunction = setInterval(function(){
// do something
}, 10 * 1000);
// .. something happened; need to cancel
clearTimeout(repeatedFunction);
代码中没有无限循环<代码>同时执行
,直到可以对条件进行评估false
。在你的情况下,这发生在第一轮之后。你甚至不应该尝试使用无限循环,它会阻塞整个浏览器,最终浏览器会崩溃。很抱歉“无限”,这是一个老主意。我只是想偶尔执行这个函数,你到底想做什么?我试图了解在计划报表中使用JavaScript的方法,我想通过portlet通道将一个参数从一个报表传递到另一个报表。我以前已经做过了,但不是预定的报告。然后,我考虑创建一个javascript来检查参数更改。但是,在报告时间表之后,我的脚本不再执行。我已经尝试了这两个函数(setInterval和setTimeout),Javascript不会在计划的(后台报告)中运行。它仅在报告实际在persons web浏览器中以交互方式运行时运行。