标签:保存 创建 序列化 跨域 自动 index 客户端 就会 session
前端的存储方式有:localStorage、sessionStorage、cookie、UserData、webSQL、indexeddb、HTML5离线存储等
在h5之前,存储主要用的是cookie。cookie会随着每次http请求头信息一起发送,无形中增加了网络流量,另外,cookie能存储的数据容量有限,根据浏览器类型不同而不同,IE6大约只能存储2K。
1)cookie的存取方法
document.cookie = "键=值"; //一次只能存一个键值对
var v=document.cookie; //取出字符串 常用操作: var arr1 = v.split("; ");//分割 JSON.stringify(obj); //对象转换为字符串存入 JSON.parse(str); //JSON字符串转换为对象取出
var date = new Date(); date.setDate(date.getDate()+"设置时长"); document.cookie = "key=value;expires="+date.toUTCString();
2)cookie的优缺点
3)cookie的应用场景:主要应用:购物车、客户端登录
localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用。
localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同
1)使用方法
localStorage.setItem("key","value");//存储 localStorage.getItems(key);//按key进行取值 localStorage.removeItems(key);//按key单个删除 localStorage.clear();//删除全部数据 localStorage.length;//获得数据的数量 localStorage.valueOf();//获取全部值
2)优缺点
3)应用场合
sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同意可以使用,关闭浏览器之后数据就会消失
1)使用方法
sessionStorage.setItem("key","value");//存储 sessionStorage.getItems(key);//按key进行取值 sessionStorage.removeItems(key);//按key单个删除 sessionStorage.clear();//删除全部数据 sessionStorage.length;//获得数据的数量 sessionStorage.valueOf();//获取全部值
2)特点
3)应用场合:sessionStorage 非常适合单页应用程序,可以方便在各业务模块进行传值。
Web Storage包括localStorange与sessionStorage。它的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。
除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。
但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生。
1> 在html标签添加manifest属性
在页面的html标签中添加manifest属性,属性值为manifest文件的路径。如:
<!DOCTYPE HTML> <html manifest="../js/demo.manifest"> ... </html>
2)编写manifest文件
manifest文件是简单的文本文件,它会告知浏览器需要缓存的内容以及不需要缓存的内容。
简单示例: CACHE MANIFEST #version 1.1 /*版本号*/ CACHE: html/index.html /*需要缓存的文件*/ NETWORK: js/jquery.js /*不需要缓存的文件*/ FALLBACK: html/index.html /*当页面无法访问时的回退页面*/
1.浏览器对缓存数据的容量限制可能不太一样 2.如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器会继续加载之前的缓存 3.引用的manifest文件必须和html文件同源,同域 4.浏览器的自动缓存会导致更改了的html文件必须更新版本才能更新页面 5.更新版本后,必须刷新一次才会启动新版本 6.当manifest文件发生改变时,资源请求本身也会触发更新
浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
区别: 1、离线缓存是针对整个应用,浏览器缓存是单个文件 2、离线缓存断网了还是可以打开页面,浏览器缓存不行 3、离线缓存可以主动通知浏览器更新资源
本地存储与离线缓存都是为了方便网页的加载,提高用户体验等。
本地存储一般存储的都是数据,而离线缓存一般存储的是网页等。
标签:保存 创建 序列化 跨域 自动 index 客户端 就会 session
原文地址:https://www.cnblogs.com/moutudou/p/8073618.html