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