2014-01-19 40 views
0

有没有像sessionStorage一样在indexedDB上存储临时数据的方法:不可用于同一个域的其他会话(选项卡),并在会话关闭时过期(影响某些项目在storeObject或整个storeObject上)?在当前会话的indexedDB上存储临时数据

我可以使用随机名创建storeObject,并在用户退出页面时添加卸载事件侦听器以删除此storeObject。但问题在于,即使用户只是在同一个域上更改页面或刷新页面...,(同一会话),storeObject也会被删除。

我知道有一些基于document.cookie API的sessionStorage-like存储的实现,这对我的情况来说不是一个完美的解决方案。

回答

1

我不确定是否有办法做你想做的事情。我相信,indexDB是持久的,直到被删除。您可以根据时间戳进行删除,这只能在用户返回或注销按钮后发生。

这可能会帮助你可以对用户的localStorage如果你不存储到多的数据: http://www.sitepoint.com/an-overview-of-the-web-storage-api/

如果你担心并发数据优先可以实现锁: http://balpha.de/2012/03/javascript-concurrency-and-locking-the-html5-localstorage/#comments

+0

你是正确的, IndexedDB数据持续存在,直到用户清除脱机缓存(或者应用程序将其删除) –