gpt4 book ai didi

jquery每30秒请求一次检查文件是否存在

转载 作者:行者123 更新时间:2023-12-01 04:53:24 25 4
gpt4 key购买 nike

我正在将一个文件上传到我的 apache 服务器,该服务器将其发送到另一台服务器进行繁重的计算,大约需要 10 分钟才能完成。

我正在寻找可能在 jQuery 中的代码,它可以帮助我在第三个服务器执行请求时每 30 秒发送一次请求,从而保持客户端和服务器之间的连接处于事件状态。

我在某处读到,我可以使用 setInterval 来检查文件是否存在,但是一旦输出文件准备好发送回客户端,如何使其停止。

下面是我的html和js代码

echo "<form name=\"cre\" id=\"cre\" action=\"#\" method=\"post\" enctype=\"multipart/form-data\">";
echo "<label for=\"file\">Filename: </label>";
echo "<input type=\"file\" name=\"file\" id=\"file\" ><br><br>";
echo "<label for=\"email\">Email: </label>";
echo "<input id=\"email\" type=\"text\" name=\"email\" maxlength=\"40\"><br><br>";
echo "<input type=\"submit\" onclick=\"return validate();\" id=\"submit\" value=\"Submit\">&nbsp;&nbsp;";
echo "</form>";
echo "<BR>";
echo "<div id=\"uploader\"></div>";
echo "<BR>";
echo "<div id=\"outdata\">";
echo "</div>";


function keepalive(){
var feedback = $.ajax({
type: "POST",
url: "keepalive.php",
}).success().responseText;
$('#outdata').html(feedback);
}

function validate()
{
var file = $("#file").val();
if(!file || file == '' || file == null)
{
document.getElementById("outdata").innerHTML="Please select a file";
return false;
}
var options = {
target: '#outdata',
url:'process.php',
data:{
accesstype:"cre"
},
beforeSubmit: function() {
$('#uploader').html('<img src="/images/ajax-loader.gif" />');
$('input[type=submit]').attr('disabled', true);
},
success: function() {
$('#uploader').html('');
clearInterval(sI);
$('input[type=submit]').attr('disabled', false);
}
};
$('#cre').ajaxSubmit(options);
var sI = setInterval(keepalive(), 30000);
return false;
}

最佳答案

我认为问题是脚本无法从您调用的位置引用sI清除间隔(sI);所以你可以将 sI 作为全局变量。因此,在顶部将 sI 声明为 var sI=null

也许这就是你想要的。

var sI = setInterval(keepalive(), 30000); //place this here 

function validate()
{
var file = $("#file").val();
if(!file || file == '' || file == null)
{
document.getElementById("outdata").innerHTML="Please select a file";
return false;
}
var options = {
target: '#outdata',
url:'process.php',
data:{
accesstype:"cre"
},
beforeSubmit: function() {
$('#uploader').html('<img src="/images/ajax-loader.gif" />');
$('input[type=submit]').attr('disabled', true);
},
success: function() {
$('#uploader').html('');
clearInterval(sI);//on success kill the set interval
$('input[type=submit]').attr('disabled', false);
}
};
$('#cre').ajaxSubmit(options);
return false;
}

关于jquery每30秒请求一次检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16931470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com