-2

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

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

这样,用户必须单击以隐藏警报(例如,在 Chrome 上),然后循环自行正确继续。我需要在没有任何警报的情况下实现这一点。我也试过这个:

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

还有“window.setTimeout”,没有“function(){}”这个词,但它不起作用。我尝试了一切:在 JavaScript 上实现了 sleep() 函数的一些实现,每次使用setInterval调用该函数,在这篇文章中回答 1 和 3 ...:/

非常感谢您的宝贵时间。

4

4 回答 4

4

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

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

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

可能为每一轮将几个迭代分组在一起:

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

但是,间隔将使迭代尽可能快地进行,同时仍为用户交互提供一些空闲时间,例如单击特定按钮以清除间隔

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

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

于 2013-09-23T15:07:47.357 回答
3

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

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

setInterval(updateLoop,500);
于 2013-09-23T14:34:26.973 回答
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;


 }

   }
于 2014-12-30T05:22:14.497 回答
-2
for(var I = 7; I >1; i+=3);
console.log(i)
于 2014-08-13T00:12:21.927 回答