我有以下显示表格的代码。上传器 div 部分显示一个 gif 图像来告诉用户文件正在由服务器处理,并且 div 'outdata' 保存文件处理后来自 ajax 调用的输出。我的文件需要很长时间才能在服务器上处理,因为它包含大量信息。假设最后一个文件花了大约 12.11 分钟。
我的问题是,当我上传一个小文件时,它工作得很好。响应显示在 outdata div 部分。但是,当文件大小较大时,似乎服务器会输出文件,因为我将它通过电子邮件发送给我,但是浏览器页面反映的并不相同。它显示文件仍在处理中,图像停留在屏幕上。
1)。浏览器等待 ajax 发送回 responsetext 多长时间 2)。有更好的方法吗?
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\"> ";
echo "</form>";
echo "<BR>";
echo "<div id=\"uploader\"></div>";
echo "<BR>";
echo "<div id=\"outdata\">";
echo "</div>";
这是ajax调用
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('');
$('input[type=submit]').attr('disabled', false);
}
};
$('#cre').ajaxSubmit(options);
return false;
}