为什么我的javascript循环不是';我的chrome浏览器崩溃了吗?
更新 我为我的浏览器控制台制作了这个javascript脚本,并添加了一个循环:为什么我的javascript循环不是';我的chrome浏览器崩溃了吗?,javascript,google-chrome,console,Javascript,Google Chrome,Console,更新 我为我的浏览器控制台制作了这个javascript脚本,并添加了一个循环: var available = false; while (available === false){ setTimeout(function(){ document.getElementById('CONTENU_WIN').contentWindow.location.reload() setTimeout(function(){ var butt
var available = false;
while (available === false){
setTimeout(function(){
document.getElementById('CONTENU_WIN').contentWindow.location.reload()
setTimeout(function(){
var button = document.getElementById('CONTENU_WIN').contentWindow.document.getElementById('boutonSuivant');
button.click();
setTimeout(function(){
// Get value of span text
var span_Text = document.getElementById('CONTENU_WIN').contentWindow.document.getElementById("compTableau_tbody").innerText;
console.log(span_Text)
if (span_Text == "No available appointment") {
console.log("NONNNNN");
} else {
// If "No available appointment." not detected, it means that turnos are available.
// Make a sound
var typeWriter = new Audio("http://soundbible.com/mp3/School_Fire_Alarm-Cullen_Card-202875844.mp3");
typeWriter.play()
// Date & Time instance
var ts = new Date();
console.log(ts.toString());
setTimeout(function(){
console.log("WAITING FOR YOUR TO TAKE THE TURNO!!!!")
}, 200000);
available = true;
console.log(available);
}
}, 5000);
}, 10000);
}, 10000);
}
我的目标是执行第一个“if”语句,直到它不能执行为止,然后转到else(var available=true;)
但是这个循环使我的浏览器崩溃。我测试了不同的循环和不同的东西:
-做/当
-而假/真
-为了
-设定间隔
- ... 但我不明白为什么。也许我还是不太适应循环
有人能帮我吗?
谢谢 我认为您正在重新分配变量的范围
可用
。可用的var=真;在您的函数中有第二个分配的变量,该变量仅在函数中可用。只需执行available=true
(不带var),而不是重新声明它。我更新了它,它仍然是crashsetTimeout,而不是sleep方法。循环不断地运行,并产生更多的超时。异步101。@科林,你的代码中有一个逻辑错误<代码>可用变量在超过10秒后最终将变为真,因为所有这些设置超时
。在这段时间里,while循环一次又一次地执行,只是让内存过载。那我还能用别的方法吗?嗨!我现在编辑了这个部分,但它在启动函数后仍然崩溃