标签: session-storage

HTML5本地存储与会话存储

除了非持久性和仅限于当前窗口的范围之外,对本地存储的会话存储有任何好处(性能,数据访问等)吗?

javascript html5 session-storage local-storage

527
推荐指数
9
解决办法
29万
查看次数

localStorage,sessionStorage,session和cookies有什么区别?

localStorage,sessionStorage,session和cookies的技术优势和缺点是什么?我何时使用其中一个?

cookies html5 session-storage local-storage

488
推荐指数
9
解决办法
25万
查看次数

在sessionStorage中保存Javascript对象

SessionStorage和LocalStorage允许在Web浏览器中保存键/值对.该值必须是一个字符串,并且保存js对象并不简单.

var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过将对象序列化为JSON,然后反序列化它们来恢复对象来避免此限制.但是Storage API总是通过setItemgetItem方法传递.

sessionStorage.setItem('user', JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem('user')); // An object :D
Run Code Online (Sandbox Code Playgroud)

我可以避免这种限制吗?

我只是想执行这样的事情:

sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'
Run Code Online (Sandbox Code Playgroud)

我曾尝试defineGetterdefineSetter方法拦截电话,但它是一个单调乏味的工作,因为我必须定义所有属性和我的目标是不知道未来的属性.

javascript session-storage

140
推荐指数
5
解决办法
24万
查看次数

浏览器会话存储.标签之间共享?

我在我的网站中有一些值,我希望在浏览器关闭时清除,我选择sessionStorage来存储该值,当选项卡关闭时清除它并在用户按f5时保持存储,但如果用户在不同的选项卡中打开一些链接这个值不可用.我如何在我的应用程序之间共享所有浏览器选项卡之间的sessionStorage值?

用例:将值放在某个存储中,在所有浏览器选项卡中保持该值可访问,如果所有选项卡都关闭则清除它.

if (!sessionStorage.getItem(key)) {
    sessionStorage.setItem(key, defaultValue)
}
Run Code Online (Sandbox Code Playgroud)

javascript cross-browser session-storage

123
推荐指数
5
解决办法
13万
查看次数

HTML5会话存储有多大?

虽然localStorage大小已经详细解决并且有一个在线测试,但我想知道sessionStorage对于常见浏览器的最大大小是多少?

javascript html5 session-storage local-storage

38
推荐指数
2
解决办法
4万
查看次数

HTML5中的本地存储,会话存储,Web存储,Web数据库和cookie

这些概念之间有什么区别,我应该何时特别使用?此列表是否也包含相同一般概念的不同名称?

  • HTML5本地存储
  • HTML5会话存储
  • HTML5网络存储
  • HTML5网络数据库
  • 饼干

cookies html5 session-storage local-storage web-sql

29
推荐指数
1
解决办法
1万
查看次数

在浏览器中,Safari的私密浏览中的sessionStorage与Chrome的隐身模式和Firefox的私人窗口的工作方式不同?

看来,对于sessionStorageChrome的隐身模式与Safari的私人浏览和Firefox的私人窗口,它的工作方式不同?我可以在http://www.webdirections.org/blog/webstorage-persistent-client-side-data-storage/上找到一些内容,但它没有说Safari的私人浏览会抛出异常.

以下是我打开"私人浏览"的方式:

  1. 在Mac上的Safari上,单击菜单栏上的"Safari - >私密浏览"
  2. 在Chrome上,使用"文件 - >新的隐身窗口"
  3. 在Firefox上,使用"文件 - >新的私人窗口"

并在Safari上,sessionStorage不起作用,如果我在控制台中执行以下操作:

> sessionStorage["foo"] = 123.4
Error: QUOTA_EXCEEDED_ERR: DOM Exception 22

> sessionStorage["foo"] 
undefined
Run Code Online (Sandbox Code Playgroud)

但在Chrome或Firefox上,sessionStorage照常工作(非私人浏览).就上述sessionStorage问题而言是否准确?

safari firefox google-chrome session-storage

23
推荐指数
3
解决办法
3万
查看次数

在电子书页面之间共享数据

我想在我的固定布局epub3电子书的一章末尾进行测验.这个测验将跨越多个页面,并且本质上是多项选择.每个问题都包含问题本身和四个选项,每个选项都有一个单选按钮.在测验结束时,用户将单击按钮以显示其整体结果.为此,我需要在页面之间共享信息.这样做的一种方法是将所有页面放在一个XHTML文档中,然后我可以存储学生为javascript变量中的每个问题提供的答案.但是,在同一个XHTML文件中有多个固定布局epub3书的页面是否有效?正如我在这里所做的那样:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<title>My Book</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>

<style>

p.pagebreak {
    page-break-after:always;
} 

</style>
</head>

<body> 

    <p>
        Text on Page 1
    </p>

    <p class="pagebreak"></p>

    <p>
        Text on Page 2
    </p>

    <p class="pagebreak"></p>

    <p>
        Text on Page 3
    </p>
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

它在iBooks中显得很好.

或者,如果使用多个页面,我可以使用存储学生的答案window.sessionStorage.但是,我不知道有多少读者支持存储.我希望测验适用于iBooks以及Android和Windows平板电脑和台式机.

您如何建议我实施我的测验?

javascript html5 session-storage epub epub3

19
推荐指数
1
解决办法
449
查看次数

sessionStorage何时实际清除?

我有一些javascript来检查sessionStorage中的对象,并使用它来重新填充输入字段.我使用它来帮助我的网站上的用户,如果他们离开表单未完成,并导航或尝试在他们的会话过期后提交表单.

我的理解是sessionStorage没有链接到服务器会话,它链接到浏览器,所以我是否在服务器上有新的会话是无关紧要的.

几个月前我最初测试时支持了这一点.但是,似乎不再是这种情况,当我清除会话cookie并重新加载我的页面时,我的sessionStorage也被清除了.这是使用Chrome和Firefox.

我不想使用localStorage,因为这可能会导致共享计算机出现问题,而当浏览器窗口关闭时,sessionStorage将被清除.

JS获取我存储对象的值

JSON.parse(sessionStorage.getItem("draftPost") || null);
Run Code Online (Sandbox Code Playgroud)

JS保存价值

$("#wallText").on("change",function(){
            sessionStorage.setItem("draftPost",JSON.stringify(draftPost));
        });
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5 session-storage

18
推荐指数
2
解决办法
2万
查看次数

如何在Angular应用程序中存储身份验证令牌

我有一个与REST API服务器通信的Angular应用程序(SPA),我有兴趣找到存储从API服务器返回的访问令牌的最佳方法,以便Angular客户端可以使用它来验证未来的请求到API.出于安全原因,我想将其存储为浏览器会话变量,以便在关闭浏览器后不会保留令牌.

我正在使用资源所有者密码授权实现一个稍微定制的OAuth 2.0版本.Angular应用程序提供了一个表单,供用户输入其用户名和密码.然后将这些凭证发送到API以换取访问令牌,然后必须将其作为标头(授权:承载%令牌%)发送给API的所有出站请求,以便它可以授权对其他路由的请求.

我对Angular的领域还很陌生,但是我想在处理这些令牌时实现的工作流程总结如下.

1)客户端向API发出请求,为其提供用户凭据.

2)如果此请求成功,则令牌存储在某处(问题在哪里)

3)拦截HTTP请求.如果设置了token,则将其作为标头传递给API

4)浏览器/选项卡关闭时,令牌被销毁.

我知道Angular提供$ window.sessionStorage,这似乎是我正在寻找的,但我担心它根据我读过的各种资源不能在所有浏览器上工作.这是一个企业级应用程序,必须兼容各种浏览器(IE,Chrome,Firefox).我能安全地使用它,并确信它会稳定吗?

根据我的理解,替代方案是$ window.localStorage或cookies($ cookies,$ cookieStore).这对我来说不是一个理想的解决方案,因为我不希望这些数据持续存在,但如果这更可靠,我将不得不牺牲兼容性的效率.我也认为可以简单地将它设置为$ rootScope上的值并以这种方式引用它,但我不确定这是否可行.

我希望一切都有道理.任何帮助/建议将不胜感激.谢谢!

cookies session-storage local-storage access-token angularjs

16
推荐指数
1
解决办法
1万
查看次数