我阅读了有关sessionStorage和localStorage的一些文档,但我不明白范围是什么:域,特定页面?
例如,如果我有以下页面:
http://example.com/products.aspx?productID=1
http://example.com/products.aspx?productID=2
http://example.com/services.aspx?serviceID=3
如果我在上面的每个页面上运行(idvalue是查询字符串中的值):
localStorage.setItem('ID',idvalue);
Run Code Online (Sandbox Code Playgroud)
我最终会存储3个不同的值,或者值是否会相互覆盖?
sessionStorage和localStorage存储在客户端计算机上的哪个位置?
你能告诉我这条路吗?
我可以成功绑定事件以更改为localStorage(使用jquery):
$(window).bind('storage', function(e)
{
alert('change');
});
localStorage.setItem('someItem', 'someValue');
Run Code Online (Sandbox Code Playgroud)
如果我使用sessionStorage,事件将不会触发:
$(window).bind('storage', function(e)
{
alert('change');
});
sessionStorage.setItem('someItem', 'someValue');
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
比方说,我sessionStorage有三个对象是谁的键foo,foobar和baz.有没有办法可以调用.removeItem或以某种方式删除sessionStorage谁的密钥匹配的所有项目foo?在这个例子中,我只剩下关键项目baz.
一些问题涉及HTML5的sessionStorage:
我在另一个SO问题中找到了这个网站http://dev-test.nemikor.com/web-storage/support-test/,我想知道数据是否仍然相关?
当Chrome中的标签重复时,sessionStorage也会重复?
我注意到在IE中它不是.
我已经在Web存储(会话和/或本地)中存储了一些字符串,并且想知道是否可以在页面加载或服务器端的init上检查这样存储的字符串(在我的情况下是asp.net c#). ..因此,例如,我将知道不从数据库重新获取数据并使用最后一页加载时已驻留在浏览器中的数据.
我目前正在开发一个PhoneGap应用程序,并使用sessionStorage而不是localStorage,因为我们遇到了localStorage的一些问题.
在localStorage上使用sessionStorage有什么缺点吗?
我试图在页面刷新时从sessionStorage检索我的搜索和过滤数据.
sessionStorage.restorestate返回undefined,有谁知道为什么?
app.run(function($rootScope) {
$rootScope.$on("$routeChangeStart", function(event, next, current) {
if (sessionStorage.restorestate == "true") {
$rootScope.$broadcast('restorestate'); //let everything know we need to restore state
sessionStorage.restorestate = false;
}
});
//let everthing know that we need to save state now.
window.onbeforeunload = function(event) {
$rootScope.$broadcast('savestate');
};
});
Run Code Online (Sandbox Code Playgroud)
Plunkr:http://plnkr.co/edit/oX4zygwB0bDpIcmGFgYr?p =preview
sessionStorage的行为已记录在案,因为它会在选项卡关闭时清除。但是,在我的实践中,当用户在选项卡中导航离开时,我客户公司的 IE 11(Edge) 会清除 sessionStorage(是的,同一个选项卡仍处于打开状态)。
使用 firefox 和 chrome,我的网络应用程序的用户可以自由地导航离开和导航回来,并且会话存储中的数据被保留。但是对于 IE 11(Edge),我的用户不能这样做。
我检查了微软关于会话存储的页面,上面写着:
window 对象的 sessionStorage 属性为在单个选项卡的生命周期内(顶级浏览上下文的持续时间)加载的所有页面维护键/值对
我的问题是:
这是 IE 会话存储的常见行为吗?如果用户离开您的域,会话存储将被清除,而其他浏览器则坚持关闭浏览器选项卡。
谢谢
firefox internet-explorer frontend google-chrome sessionstorage
sessionstorage ×10
javascript ×3
web-storage ×3
html5 ×2
angularjs ×1
asp.net ×1
browser ×1
c# ×1
cordova ×1
events ×1
firefox ×1
frontend ×1
jquery ×1
mobile ×1
tabs ×1