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,但它仍然没有运行。让它工作了,谢谢大家!