当前位置: 首页 > 面试题库 >

$ window.sessionStorage与$ cookieStore

洪高扬
2023-03-14
问题内容

使用$ cookieStore和&window.sessionStorage有什么区别?是否有时应该使用另一种方法?安全问题?

到目前为止,这是我所知道的:

AngularJS文档指出$
cookieStore服务由“会话cookie”(https://docs.angularjs.org/api/ngCookies/service/
$ cookieStore)支持。因此,似乎$ cookieStore存储的信息与使用它的窗口/选项卡相关。通过在$
cookieStore的代码中使用神秘的$
browser服务可以确认这一点:https
:
//github.com/angular/angular.js/blob/master/src/ngCookies/cookies.js#L125。

但是,由于$ browser是一项内部服务,并且可能会发生变化,因此我看不到它如何存储数据,以查看它是否类似于sessionStorage。

相同的浏览器/选项卡/窗口范围似乎适用于$
window.sessionStorage(sessionStorage和localStorage的范围)。


问题答案:

使用会话cookie的$
cookieStore表示,数据将作为作用于会话的cookie持久化,即不是持久性的。Cookie的作用域仅限于其注册的特定域,但可以在子域之间共享。Cookie存储的重要之处在于,对于该域的任何请求,这些cookie值都将被发送到服务器。它将在同一域中同一会话中的窗口和选项卡之间共享。

$ window.sessionStorage只是访问window.sessionStorage,它实际上与Angular无关。通过$
window访问它仅使您能够使用$
window的模拟版本更轻松地进行测试。会话存储的作用域是当前窗口,因此与cookie不同,如果您打开一个新选项卡到完全相同的URL,它将是一个新的sessionStorage对象。除cookie之外,还有更多的存储空间。Cookie的上限为4K,sessionStorage可能因浏览器而异,但通常约为5MB。

还有window.localStorage(或$
window.localStorage),它与sessionStorage基本相同,只是它受域限制(两个选项卡可以共享同一数据-
甚至有一个存储事件,因此您可以找出另一个选项卡更改它的时间) ),并且在您关闭浏览器后仍然存在。



 类似资料:
  • 在C语言中,假设每个算法被赋予完全相同的一组进程,那么先到先得、最短作业优先和循环之间的周转时间是否相等?还是调度算法不同?

  • 问题内容: 为了为 HTML5 Doctype 定义字符集,我应该使用哪种表示法? 短: 长: 问题答案: 在HTML5中,它们是等效的。使用较短的一个,更容易记住和键入。浏览器支持很好,因为它是为向后兼容而设计的。

  • 连接的多个输入都相当于Yes的时候才会输出Yes。 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:10:00,响起猫叫声小闹钟 工作原理 当所有的输入都是Yes的时候,与节点才输出Yes。

  • 问题内容: 似乎有三种 相同的 方法可以独立于平台获取依赖于平台的“文件分隔符”: 我们如何决定何时使用哪个? 它们之间甚至有什么区别吗? 问题答案: 可以通过调用命令行参数或使用命令行参数覆盖 获取默认文件系统的分隔符。 获取默认文件系统。 获取文件系统的分隔符。请注意,作为一种实例方法,在需要代码在一个JVM中对多个文件系统进行操作的情况下,可以使用该方法将不同的文件系统传递给代码(而不是默认

  • 问题内容: 我今天刚刚与一些同事讨论了python的db-api fetchone vs fetchmany vs fetchall。 我确定每个应用程序的用例都取决于我正在使用的db-api的实现,但是总的来说,fetchone,fetchmany,fetchall的用例是什么? 换句话说,以下等效项是什么?还是其中之一比其他人更受青睐?如果是这样,在哪些情况下? 问题答案: 我认为这确实取决于