angularjs中使用sessionStorage

 app.factory('locals', ['$window', function ($window) {return {        //存储单个属性set: function (key, value) {$window.sessionStorage[key] = value;},        //读取单个属性get: function (key, defaultValue) {return $window.sessionStorage[key] || defaultValue;},        //存储对象,以JSON格式存储setObject: function (key, value) {$window.sessionStorage[key] = JSON.stringify(value);//将对象以字符串保存},        //读取对象getObject: function (key) {return JSON.parse($window.sessionStorage[key] || '{}');//获取字符串并解析成对象}}}]);

angularjs中使用localStorage

 //=========本地存储数据服务============app.factory('locals', ['$window', function ($window) {return {        //存储单个属性set: function (key, value) {$window.localStorage[key] = value;},        //读取单个属性get: function (key, defaultValue) {return $window.localStorage[key] || defaultValue;},        //存储对象,以JSON格式存储setObject: function (key, value) {$window.localStorage[key] = JSON.stringify(value);//将对象以字符串保存},        //读取对象getObject: function (key) {return JSON.parse($window.localStorage[key] || '{}');//获取字符串并解析成对象}}}]);

localStorage和sessionStorage使用方法完全相同。
参考: angularjs 本地数据存储LocalStorage

概念:

localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。

他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

同源的判断规则:

http://www.test.comhttps://www.test.com (不同源,因为协议不同)http://my.test.com(不同源,因为主机名不同)http://www.test.com:8080(不同源,因为端口不同)

localStorage和sessionStorage使用时使用相同的API:

localStorage.setItem("key","value");
//以“key”为名称存储一个值“value”
localStorage.getItem("key");
//获取名称为“key”的值sessionStorage.getItem(key)
//---- 获取指定key的本地存储的值
sessionStorage.setItem(key,value)
//---- 将value存储到key字段中
sessionStorage.removeItem(key)
//---- 删除指定ke的本地存储的值
sessionStorage.length
//---- sessionStorage的项目数

枚举localStorage的方法:

for(var i=0;i<localStorage.length;i++){var name = localStorage.key(i);var value = localStorage.getItem(name);}

删除localStorage中存储信息的方法:

localStorage.removeItem("key");
//删除名称为“key”的信息。localStorage.clear();
//清空localStorage中所有信息
//----删除所有同源的本地存储的localStorage数据sessionStorage.clear();
//----只清空当前会话存储的数据

通过getItem或直接使用localStorage[“key”]获取到的信息均为实际存储的副本。

例如:

localStorage.key = {value1:"value1"};localStorage.key.value1='a';

这里是无法对实际存储的值产生作用的,下面的写法也不可以:

localStorage.getItem("key").value1="a";

localStorage和sessionStorage区别

详说 Cookie, LocalStorage 与 SessionStorage

cookie、 sessionStorage 、localStorage之间的区别和使用

1、与服务器通信不同

cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递;cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。
sessionStorage、localStorage仅在客户端(即浏览器)中保存,不参与和服务器的通信。

2、存储大小限制不同

cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

3、作用域不同

sessionStorage在不同的浏览器窗口中不共享,即使是同一个页面;
localStorage 在所有同源窗口中都是共享的;
cookie也是在所有同源窗口中都是共享的。
Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。

4、数据有效期不同

sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;将数据存到 session中,管你前进后退还是刷新,数据依然在,关闭窗口后再进页面才会清空数据。
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;只要不清除数据,第二天、第二周或下一年之后,数据依然可用。
cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。

但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生

Cookie和Session 的区别:

1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5)所以建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在cookie中

Javascript本地存储小结

同源

一个URL由四部分组成,拿 www.2cto.com 来说(http的默认端口是80,https的默认端口是443。如果是默认端口,可以省略,所以这个URL等价www.2cto.com:80

参考:Http协议默认端口号为( )

(协议)://(主机名):(端口号)/(路径)
http://www.2cto.com/kf/201201/117546.html协议:http
主机:www.2cto.com
端口:80
路径:/

所谓的同源就是要求这个URL的协议,主机,端口三部分都相同。一般我们说的域或者domain也是这里的源的概念。

是否同源示例:

http://blog.csdn.net/xilang/index.html
//是  http://blog.csdn.net/yanical/othersub
//是https://blog.csdn.net/yanical
//否 协议不同http://blog.csdn.net:81/yanical
//否 端口不同http://www.csdn.net/
//否 主机不同

sessionStorage 、localStorage 和 cookie相关推荐

  1. 关于sessionStorage,localStorage和cookie三者之间相同点与不同点

    关于sessionStorage,localStorage和cookie三者之间相同点与不同点 类别 sesstionStorage localstorage cookie 存储量 5M(具体看浏览器 ...

  2. 浅谈 sessionStorage、localStorage、cookie 的区别以及使用

    1.sessionStorage.localStorage.cookie 之间的区别 相同点 cookie 和 webStorage 都是用来存储客户端的一些信息 不同点 localStorage l ...

  3. sessionStorage localStorage cookie的区别

    sessionStorage localStorage cookie的区别 基本概念 cookie:是网景公司的前雇员在1993年发明.它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码 ...

  4. sessionStorage 、localStorage 和 cookie 之间的区别(转)

    essionStorage .localStorage 和 cookie 之间的区别(转) 2012-05-08 14:29:19|  分类: HTML5CSS3WEBAPP|举报|字号 订阅 ses ...

  5. sessionStorage localStorage cookie

    sessionStorage & localStorage & cookie 概念 html5中的Web Storage包括了两种存储方式:sessionStorage和localSt ...

  6. javascript中sessionStorage 、localStorage 和 Cookie

    javascript中sessionStorage .localStorage 和 Cookie 欢迎访问我的博客,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~ 参考文章:JS 详解 Cookie. ...

  7. sessionStorage 、localStorage 与cookie 的异同点

    cookie 容量4kb,默认各种浏览器都支持,缺陷就是每次请求,浏览器都会把本机存的cookies发送到服务器,无形中浪费带宽. userdata,只有ie支持,单个容量64kb,每个域名最多可存1 ...

  8. 页面之间跳转传参数不使用cookie和url的方法,sessionStorage,localStorage

    页面之间跳转传参数不使用cookie和url的方法,sessionStorage,localStorage 刚步入工作不久的小白,最近在做一个传感器网站项目的时候是用cookie存取数据,因为网站面向 ...

  9. localStorage和cookie的跨域解决方案

    localStorage和cookie的跨域解决方案 参考文章: (1)localStorage和cookie的跨域解决方案 (2)https://www.cnblogs.com/vsmart/p/9 ...

  10. 前端存储 (2) - sessionStorage ,localStorage

    sessionStorage ,localStorage 存储 目录 定义 生命周期 语法 存储大小 注意点 定义 sessionStorage ,localStorage 浏览器提供的api, 可以 ...

最新文章

  1. Unable to inject views for 包名.activity
  2. Python 爬虫使用固定代理IP
  3. matplotlib 旋转刻度_Matplotlib数据可视化:文本与坐标轴
  4. ipv6 服务器虚拟机软件,ipv6虚拟主机是做什么的
  5. Tomcat9 运行startup文件,打开的窗口是乱码显示
  6. matlab 约束函数,【优化求解】MATLAB约束优化之惩罚函数法
  7. Java中GUI中菜单栏
  8. 浅谈CIVIL 3D
  9. 新型APT组织正在攻击全球的政府实体
  10. mybatis中concat的用法
  11. Axure rp8元件库载入失败怎么解决
  12. 在 Python 中使用网格搜索和随机搜索进行超参数调整
  13. 计算机初中信息技术教学软件,初中信息技术教学工作计划精选
  14. 介绍鲜花视频的html模板,HTML黄色欧美形式鲜花介绍网页模板代码
  15. 《模式识别》期末考试考题汇总带答案
  16. 计算机网络——虚拟专用网与网络地址转换NAT
  17. 阿里笔试模拟题-49.吃奶酪
  18. C++学习 控制程序的流程
  19. 基于vs实现的socket—udp图片传送实例详解
  20. FL Studio12中Fruity Blood Overdrive插件使用教程

热门文章

  1. 【宋代文学】之《青玉案·元夕》
  2. 给视频加上自己想要的水印,再也不用担心被盗图了
  3. 百度地图大头针图片的自定义
  4. 桌面扫码点餐系统(小程序+Java后台)
  5. 扫码点餐系统可以免费使用了
  6. 中国人缺乏纯粹信仰 社会充满唯经济主义导向
  7. 西北大学计算机转专业,2021年西北大学大一新生转专业及入学考试相关规定
  8. 这一次,彻底拿下操作系统!!!
  9. 特征级融合_自动驾驶系统入门(七)- 多传感器信息融合(MSIF)
  10. 看了几个技术入股的帖子,忍不住写个自己亲身经历吧