您做錯了:您不希望強制用戶在頁面上停留超過幾秒鐘,以便從您的應用獲得服務。
而是使用一個小部件,它會定期查詢一個狀態頁(當然是用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:
<script type="text/javascript">
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';
}
});
}
</script>
<a href="javascript:initiateRequest();">Generate the file</a>
所以你認爲,你的客戶將等待7-8分鐘才能開始下載文件?請提供您嘗試的代碼。 – 2012-01-10 06:05:22
你認爲它來自excel文件的創建?試試你的代碼去激活該部分,看看是否發生了什麼 – user1040899 2012-01-10 06:07:28
你試過resultSets嗎? – Sandeep 2012-01-10 06:07:57