在JavaScript上尝试无限循环

时间:2013-09-23 14:27:57

标签: javascript infinite-loop

我正在尝试进行无限循环,但只有在其上包含“警报”时它才有效。我的代码如下所示:

while( tocontinue ){
  // Some code
  alert('Accept to continue');
}

通过这种方式,用户必须单击以隐藏警报(例如,在Chrome上),然后循环自行继续正确。我需要毫不警惕地实现这一点。我也试过这个:

while( tocontinue ){
  // Some code
  tocontinue = false;
  setTimeout(function(){tocontinue=true},500);
}

并且使用“window.setTimeout”,并且没有单词“function(){}”,但它不起作用。我尝试了一切:一些关于sleep()函数的JavaScript实现,使用setInterval调用每个 X 时间的函数,在this post上回答1和3 ...:/

非常感谢你的时间。

4 个答案:

答案 0 :(得分:4)

  

我正在尝试实现遗传算法,我想在我决定时(使用将全局变量“tocontinue”置为假的按钮)停止它。与此同时,我想要一个无限循环。

好吧,你将无法将真正的无限循环与用户交互结合起来,因为它们都依赖于能够专门处理它们的同一个线程。但是,你可以近乎即时的间隔接近。

var interval = setInterval(function () {
    // some code
}, 10);

每轮可能将几次迭代分组:

var interval = setInterval(function () {
    var limit = 5;
    while (limit--) {
        // some code
    }
}, 10);

但是,间隔将使迭代尽可能快地进行,同时仍然为用户交互留出一些空闲时间,例如单击特定按钮clear the interval

document.getElementById('stopButton').addEventListener('click', function () {
    clearInterval(interval);
}, false);

示例:http://jsfiddle.net/coiscir/xZBTF/

答案 1 :(得分:3)

setInterval()在这里可能更有用。

function updateLoop() {
   //All the code goes here 
}

setInterval(updateLoop,500);

答案 2 :(得分:0)

var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP');

function loadFile() {

    reader.open('get', 'ccc.txt', true); 
    reader.onreadystatechange = displayContents;
    reader.send(null);
}

function displayContents() {

if(reader.readyState==4) {

var el = document.getElementById('main');

el.innerHTML = reader.responseText;

var data =  el.innerHTML;


 }

   }

答案 3 :(得分:-2)

for(var I = 7; I >1; i+=3);
console.log(i)