在setInterval循环中触发第二个Ajax请求

时间:2018-11-25 16:01:54

标签: javascript polling

我有一个javascript函数,用于轮询HTML文件的存在,并在发现该文件时显示其内容。 效果很好...但是我想做的是在运行这些检查的同时调用第二个函数...即文件不存在... 但是第二个功能仅在文件存在后才起作用...否则,在我的Chrome开发工具中,它仅显示为(待定)

任何想法可能是由什么引起的?

function checkfile(fileNamePassed, userCode, typeOfReport, proof, passedDate){

    var timerForLoadingResult=setInterval( function() { checkServerForFile(fileNamePassed, userCode, typeOfReport, proof, passedDate); }, 3000 );

function checkServerForFile(fileNamePassed, userCode, typeOfReport, proof) { 
        var d = new Date();   
        var newDate=d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate()+'.'+d.getHours()+'.'+d.getMinutes()+'.'+d.getSeconds();

        checkReportRequests(passedDate);

          $.ajax({
                    url: 'https://example.com/wwl/htmlPolling/'+fileNamePassed+'.html',
                    type:'HEAD',
                    error: function()
                    {

                    },
                    success: function()
                    {
                        clearInterval(timerForLoadingResult);
                        $("#generateReports").attr('onclick',"generateReports('"+typeOfReport+"','"+proof+"','"+userCode+"','"+newDate+"')");
                        $("#main").load('https://example.com/wwl/htmlPolling/'+fileNamePassed+'.html');
                        $('[id=wait]').hide();  
                        $('[id=wrapper]').hide();   
                        $('[id=main]').show();  
                    }
                });
            }
}

被调用的第二个函数是:

function checkReportRequests(passedDate){


            $.ajax(
                {
                    type: "POST", 
                    url: "ajax.php",
                    data: (
                    {
                        "type": "checkReportRequests",
                        "passedDate": passedDate         
                    }), 

                    success: function(response)
                    {
                        $("#statusCheck").html(response);
                    }
                });


}

该功能之所以有效,是因为它在轮询完成后立即显示结果...但是,重点是它会在整个过程中进行更新!

enter image description here

0 个答案:

没有答案