2014-03-13 20 views
0

我發現了很多關於如何在數據保存之前提示用戶關閉窗口的解決方案,但在我的場景中,這一頁保存了大量數據並且速度很慢(大約需要30秒),這是點擊保存按鈕後。我們發現用戶正在點擊保存按鈕,然後在點擊保存後導航或離開。根據瀏覽器的不同,發送到服務器的內容不一定會保存(查看Chrome瀏覽器)。有關如何防止用戶關閉瀏覽器窗口(通過onbeforeunload)的建議點擊保存按鈕後?

我選擇使用這個解決方案,幾乎做我所需要的,除非我點擊保存按鈕,我仍然提示保存離開頁面後的變化。它就像我需要關閉提示,然後延遲一段時間後再打開它。這甚至有可能嗎?

window.onbeforeunload = function() { 
     if (Flag == 'Y') { 
      return "Changes made. Don't want to save?";       
     } 
    } 
+0

以上代碼的src來自http://stackoverflow.com/questions/6308441/javascript-onbeforeunload-close-browser-window – HPWD

+5

你應該通過UI來解決這個問題。顯示某種進度條或微調錶示操作未完成。 – meagar

+0

在用戶界面中顯示一個微調,並顯示一條消息,說不要關閉瀏覽器,它可能需要1分鐘或2分鐘,當完成保存時,通知用戶 – Huangism

回答

0

你爲什麼不嘗試「另存爲你去」的辦法?...你可以把小靈通請求在你有任何的數據輸入機制的用戶進度,並存儲在臨時文件在您的服務器上,所以當用戶點擊「保存」按鈕或關閉瀏覽器窗口時,您只會發送一個小小的請求,足夠快以允許瀏覽器斷開連接。然後,服務器只讀取臨時​​文件並對其進行處理,就好像它是由用戶在單個操作中發送的一樣。可能不容易,但你會擺脫不少的頭痛。

+1

我也提出了這個解決方案,但是如果用戶退出,那麼客戶端不需要任何數據。他們非常堅持這一點。大聲笑 – HPWD

相關問題