2012-03-18 43 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