JavaScript中的延迟While循环
我正在使用以下代码检查锚标记的href属性,如果为空,我现在想显示警报。但是,当我在web浏览器控制台中编写javaScript代码时,我的整个系统在相当长的一段时间内没有响应。我可能做错了什么。有人能给我解释一下吗JavaScript中的延迟While循环,javascript,html,Javascript,Html,我正在使用以下代码检查锚标记的href属性,如果为空,我现在想显示警报。但是,当我在web浏览器控制台中编写javaScript代码时,我的整个系统在相当长的一段时间内没有响应。我可能做错了什么。有人能给我解释一下吗 <html> <body> <a href="" id = "content2">Click Here</a> <body> </html> var a=document.getElementById(“co
<html>
<body>
<a href="" id = "content2">Click Here</a>
<body>
</html>
var a=document.getElementById(“content2”).getAttribute(“href”);
设i=0;
而(a.修剪().长度<1)
{
任务(一);
}
职能任务(i){
setTimeout(函数(){
警报(一);
}, 1000 * 10);
}
您需要将while
循环更改为如果条件,则while
循环从未结束
var a=document.getElementById(“content2”).getAttribute(“href”);
设i=0;
如果(a.修剪().长度<1)
{
任务(一);
}
职能任务(i){
setTimeout(函数(){
警报(一);
}, 1000 * 10);
}
您需要将while
循环更改为如果条件,则while
循环从未结束
var a=document.getElementById(“content2”).getAttribute(“href”);
设i=0;
如果(a.修剪().长度<1)
{
任务(一);
}
职能任务(i){
setTimeout(函数(){
警报(一);
}, 1000 * 10);
}
您的超时调用似乎在一个while循环内,该循环被调用了很多次。应该是
var a=document.getElementById(“content2”).getAttribute(“href”);
设i=0;
如果(a.修剪().长度<1){
任务(一);
}
职能任务(一){
setTimeout(函数(){
警报(一);
如果(a.修剪().长度<1){
任务(++i);
}
}, 1000 * 10);
}
您的超时调用似乎在一个while循环内,该循环被调用了很多次。应该是
var a=document.getElementById(“content2”).getAttribute(“href”);
设i=0;
如果(a.修剪().长度<1){
任务(一);
}
职能任务(一){
setTimeout(函数(){
警报(一);
如果(a.修剪().长度<1){
任务(++i);
}
}, 1000 * 10);
}
但如果替换while,则只执行一次代码。我希望每秒钟执行一次代码,而不仅仅是一次,但您需要更改while循环的条件吗?是否要循环,直到whatBut替换if代替while只执行一次代码。我希望每秒钟执行一次代码,而不仅仅是一次,但您需要更改while循环的条件吗?是否要循环,直到通过a href?跟踪更改背后的想法是什么?使用while是否,因为它阻止了代码执行(是一个同步函数)。为什么通过a href?跟踪更改背后的想法是否,使用while是否,因为它阻止了代码执行(是一个同步函数)。
var a = document.getElementById("content2").getAttribute("href");
let i = 0;
while(a.trim().length < 1)
{
task(i);
}
function task(i) {
setTimeout(function() {
alert(i);
}, 1000 * 10);
}