2016-11-04 91 views
0

我可以在特定的執行時間之後設置特定的Coldfusion頁面以重定向嗎?超時後重定向coldfusion頁面

它運行的過程可能需要很長時間,但我希望允許它嘗試60秒,然後將其引導到一個新頁面,該頁面將指示已完成多少操作。

+3

您可以對長時間運行的進程進行線程化,並將請求重定向到指示進程可能仍在運行的頁面。 –

+0

跟進@ ScottStroz的評論,如果你真的成功了,如果操作超時並且他得到進度報告,用戶的下一步是什麼? –

+0

這是一種奇怪的情況,用戶手動填寫錯過的流程 - 需要很長時間的流程部分是cffile copy命令。複製的文件數量各不相同,如果不止一對,它往往需要的時間比讓用戶手動完成更長。 (我不知道這是爲什麼) –

回答

-2

真正簡單的事情是使用META刷新。

<meta http-equiv="refresh" content="60;url=http://yoursite.com/somepage.cfm"> 

或者,你可以使用JavaScript:

setTimeout(function(){ location.href="http://yoursite.com/somepage.cfm" }, 60000); 
+1

這並沒有解決概述的問題。當客戶端閒置60秒時,這將強制客戶端重定向。 OP想知道如果服務器請求的時間超過60秒,他是否可以重定向服務器請求。 –

1

不清楚自己是什麼位置之後,但又一想可能是沖洗可用輸出給用戶,因爲它正在處理。 ColdFusion有一個標籤可以讓它變得簡單。

See the docs regarding the cfflush tag

它可以按照您定義的特定間隔發回信息。

間隔(可選)

整數。每當這個字節數變爲可用時刷新輸出。 HTML標頭以及標籤執行時已經可用的數據在計數中被忽略。

+0

我實際上並沒有輸出任何數據,它是一系列查詢後面跟着一個cflocation標記,當他們完成時。 –

+0

如果沒有用戶交互(沒有輸出給用戶),那麼它聽起來像這只是一個計劃任務。完成後,您可以讓該任務發送電子郵件給該人員。也許這封電子郵件也可能包含一個鏈接,讓用戶點擊查看報告或其他內容。 –