處理檔案下載完成偵測
問題:
偵測瀏覽器何時完全接收到顯示等待指示器時,動態產生的文件下載變得至關重要。目前,由於瀏覽器不一致,使用 iframe 的「load」事件無法解決此問題。
解決方案1:基於瀏覽器的令牌驗證
客戶端JavaScript解決方案涉及:
在伺服器端,演算法:
程式碼片段(JavaScript):
function setFormToken() { var downloadToken = new Date().getTime(); document.getElementById("downloadToken").value = downloadToken; return downloadToken; }
程式碼片段(PHP):
// Set a cookie to unblock submit button when download begins. $TOKEN = "downloadToken"; $this->setCookieToken($TOKEN, $_GET[$TOKEN]);程式碼片段(PHP):
解決方案2:伺服器輪詢
此方法避免了建立臨時伺服器檔案。然而,它需要在等待期間進行客戶端與伺服器的通訊。
優點和缺點:使用瀏覽器令牌允許動態偵測,但可能存在瀏覽器相容性問題。伺服器輪詢是一種更可靠但速度較慢的選項。以上是如何在瀏覽器中可靠地偵測文件下載完成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!