我正在尝试进行无限循环,但只有在其上包含“警报”时它才有效。我的代码如下所示:
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 ...:/
非常感谢你的时间。
答案 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);
答案 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)