jquery setInterval和setTimeout不工作,不循环
我在设置超时时遇到了问题。这根本不是循环。我也试过了。我正在尝试循环一个部署脚本,看看当前是否部署了任何代码。我们希望它每秒钟运行一次。它检查每一行,以查看部署是否正在进行或是否已完成。我不知道我做错了什么jquery setInterval和setTimeout不工作,不循环,jquery,settimeout,setinterval,Jquery,Settimeout,Setinterval,我在设置超时时遇到了问题。这根本不是循环。我也试过了。我正在尝试循环一个部署脚本,看看当前是否部署了任何代码。我们希望它每秒钟运行一次。它检查每一行,以查看部署是否正在进行或是否已完成。我不知道我做错了什么 $(document).ready(function() { var file = "secret/dont/tell/anyone"; setTimeout(function() { console.log('it was ran!');
$(document).ready(function()
{
var file = "secret/dont/tell/anyone";
setTimeout(function()
{
console.log('it was ran!');
$.ajax(
{
url: file,
success: function(data)
{
var lines = data.split("\n"); // Get All Lines
var currentLine = lines.length;
currentLine = currentLine - 2;
currentLine = lines[currentLine];
currentLine = currentLine.split(":");
if(currentLine.length == 4)
{
$(document).prop('title', currentLine[0]);
}
if(currentLine.length == 5)
{
$(document).prop('title', currentLine[4]);
}
for(var i = 0; i < (lines.length - 1); i++)
{
var LineContent = lines[i].split(":"); // Split the current line by delimiter
var newLine = $("<div class=\"newLine\">" + LineContent[1] + ": " + LineContent[3] + " (" + LineContent[2] + ")</div>"); // Set up the new div
$("body").prepend(newLine); // Prepend the new line so the newest line is at the top
}
},
dataType: 'text'
});
}, 1000);
});
你没有开始超时。为了使其工作,请将其放在函数中,然后在超时内调用该函数。像这样:
function start() {
setTimeout(function() {
console.log('it was ran!');
$.ajax({
url: file,
dataType: 'text',
success: function(data) {
// ....your other code
start(); //starts the loop again
}
});
}, 1000);
}
start();//runs the function at load
尝试删除DataTypeIt是否至少运行一次?setTimeout方法不应该循环,它只调用回调一次。改用setInterval。您应该在ajax调用的设置中添加cache:false,否则即使文件发生更改,您也会反复看到相同的响应。它只运行一次。我把setTimeout放在一个函数中,然后我也把setTimeout改为setInterval,但它仍然没有运行。让它工作了,谢谢大家!