jqueryajax:如何每隔X秒检查一个文件(具有访问权限)?

jqueryajax:如何每隔X秒检查一个文件(具有访问权限)?,jquery,ajax,Jquery,Ajax,我想用jQuery/Ajax检查一个文件 我正在生成一个文件,这可能需要30-90秒 如果文件已经存在(已经生成),我希望jQuery/Ajax每X(例如5)秒检查一次 我该怎么做 此外,我想知道文件是否真的已经完全生成,因此我想检查唯一访问权限(或者如果由于文档正在编写而发生错误) 这可能吗 我找到了下面的代码片段来检查文件,但它似乎总是发送一个“OK” 来源:您可以使用它而不是$.ajax $('#divid').load('url').fadeIn("slow");}, 10000); /

我想用jQuery/Ajax检查一个文件

我正在生成一个文件,这可能需要30-90秒

如果文件已经存在(已经生成),我希望jQuery/Ajax每X(例如5)秒检查一次

我该怎么做

此外,我想知道文件是否真的已经完全生成,因此我想检查唯一访问权限(或者如果由于文档正在编写而发生错误)

这可能吗

我找到了下面的代码片段来检查文件,但它似乎总是发送一个“OK”


来源:

您可以使用它而不是$.ajax

$('#divid').load('url').fadeIn("slow");}, 10000); // refresh every 10000 milliseconds

并将php/SQL代码添加到文件“url”

如何生成文件

依我看,在文件生成的开始,您的
http://www.example.com/somefile.ext
在生成内容时,服务器上已存在。这就是为什么你总是获得成功的状态

更好的方法是创建服务器挂钩(例如
http://www.example.com/checkFileStatus
)将返回
{generated:true,fileUrl:'yourFile'}
,并使用setTimeout来检查它。

您想这样做,对吗?
success:
    function(res){
        // res -> will catch the response from server if file has been generated
        // suppose server will send 'ok' after file generation so, res == 'ok'
        // now check for response in every 5 seconds
        var tm = setInterval(function() {
                     if(res == 'ok') {
                        alert('File made');
                        clearInterval(tm);

                        // now here do what you want

                     }
                 }, 5000);
    }
$('#divid').load('url').fadeIn("slow");}, 10000); // refresh every 10000 milliseconds