您做错了:您不希望强制用户在页面上停留超过几秒钟,以便从您的应用获得服务。
而是使用一个小部件,它会定期查询一个状态页(当然是用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