我有一个javascript循环,每次页面通过websocket接收更新时都会触发。即使在收到下一个websocket更新后,此循环也会持续存在。结果是多个循环开始运行,页面性能迅速下降。每个循环都很重要,只有在下次更新之前才会过时。
有没有办法从另一个函数终止一个活动循环,或者我只是在想这个错误的方法?
答案 0 :(得分:1)
循环中有条件查找全局标志,并且在收到更新时将标志设置为False。
答案 1 :(得分:0)
通常你会在循环之外设置一个标志/条件,每次迭代都会检查它。
所以..
while(true){
// Do stuff
if(condition == false){
break;
}
}
在你的情况下,我认为你可能拥有的是一系列更新。所以你的循环会检查队列 - 看它自上次做了之后它有四个更新 - 然后它做它做的任何事情。新的websocket更新进入 - 循环完成它正在做的事情 - 返回并再次检查队列。