2012-03-18 77 views
0

多個選項卡我有一個單頁的應用程序,可以有多個標籤,每個標籤做不同的動作打開。但是,如果用戶點擊刷新或返回,他們會失去他們正在處理的所有內容。有沒有辦法,可能是結合了hash-bangs和cookie,以防止丟失?例如,如果用戶要刷新,則他們使用的所有選項卡將被打開。處理與hashbang

+0

沒有特別的原因不得不使用cookie,你也可以使用localStorage的......? – dmp 2012-03-18 21:17:24

+0

必須與所有瀏覽器一起使用。 HTML5是不是一種選擇 – LordZardeck 2012-03-18 21:20:23

+0

這會是很大的下一次這個問題提:) – Saebekassebil 2012-03-18 21:25:27

回答

2

我建議不要餅乾,因爲它們導致不必要的開銷到HTTP請求。

AmplifyJS提供跨瀏覽器支持用於持久性數據,使用localStorage儘可能與回退到sessionStorageglobalStorageuserData(IE)。

1

您可能需要使用onbeforeunload事件。這個事件在用戶「卸載」(刷新/重定向/等)之前調用(顧名思義),它允許你警告用戶他試圖擺脫未保存數據的頁面。

window.onbeforeunload = function(e) { 
    e = e || window.event; 
    var warning = 'You\'ve made changes to this page. Are you sure you don\'t want to save them?'; 

    if(e) { 
    e.returnValue = warning; 
    } 

    return warning; 
} 

查看MDN Docs瞭解有關該事件的更詳細概述。

有大量的方法來保存數據,如localStorageIndexedDBAJAX到服務器和(最後)Cookies

+0

這可能是我會做什麼。謝謝。 – LordZardeck 2012-03-18 21:26:36