你做错了:你不想强迫用户最多停留在页面上超过几秒钟,以便从你的应用程序获得服务。
相反,使用一个小部件来定期查询状态页面(当然是ajax)并在作业完成时显示一条消息。
(什么样的excel文件需要7分钟生成?数据库转储?)
编辑:
不同的浏览器在长ajax请求时的行为会有所不同,因此即使用户愿意,也不要依赖它们永远等待。如果您要求生成报告并下载报告,您的应用程序将更加强大。
这可以让你知道我在说什么:
create_my_excel_file.php:
$_SESSION['excel_status']='generating';
create_the_excel_file();
$_SESSION['excel_status']='finished';
check_status.php:
echo $_SESSION['excel_status'];
user_interface.php:
function initiateRequest(){
$.ajax('create_my_excel_file.php');
setInterval('checkForCompletion()', 5000);
}
function checkForCompletion(){
$.get('check_status.php', function(data){
if('finished'==data){
alert('Completed! Download the file now.');
location.href='file_download.php';
}
});
}
Generate the file