js中常见的存储方式是什么?有什么相同点和不同点?
在js中有三种存储方式,cookies;sessionStorage;localStorage;
相同点:
三种都存储在客户端。
不同点:
1. 存储大小
cookie:存储的数据大小不能超过4k;
sessionStorage和localStorage:存储大小可以达到5M或者更多,只能存储字符串类对象,如果想要存储其他,需要对其进行编码解码;
2.有效时间
cookie:设置的cookie存储周期内一直有效,及时浏览器关闭;
sessionStorage:数据在浏览器窗口关闭后自动删除;
localStorage:除非主动删除数据,否者数据会持久存储;
3.数据和服务器之间的交互方式
cookie:数据从客户端自动传递到服务器,反之服务器端也可以写cookie到客户端,cookie可以被限制在某一路径下;
sessionStorage和localStorage:仅在本地保存;
4.作用域
cookie:在所有同源窗口共享;
sessionStorage:在不同的浏览器窗口中不共享,即使在同一页面上也不共享;
localStorage:在所有的同源窗口中是共享的;