网页可以储存使用者偏好,可以在关掉网页後重新访问时纪录使用者上次浏览的状态,能做到这些神奇的事是因为浏览器中有一个不为人知(可能只有我不知道)的储存区域(Web Storage),让网页可以使用浏览器提供的API在使用者的电脑上储存资料,如此一来,浏览器就能像人类一样有记忆能力了。
在 HTML5 出现前,应用程序的资料是存放在 cookie 中,但因为 cookie 的储存空间有限(上限约4KB),HTML5 之後有了 Web Storage 物件,可以储存更多的资料量,下图是各家浏览器提供的储存空间
图片来源:维基百科
除了储存空间差异,Web Storage 物件还有以下几个特点:
小注解:文件的来源是由它的协定,主机名称及通讯埠所定义。例如说: http://example.com 和 https://example.com 就不是同来源(因为协定不同)
Web Storage分成两大类,分别是:
setItem(key, value)
localStorage.setItem('name', 'ironman'); //存入一笔资料
getItem(key)
localStorage.getItem('name'); //取得资料
removeItem(key)
localStorage.removeItem('name');
localStorage.getItem('name'); // null
clear()
//存入两笔资料
localStorage.setItem('name', 'ironman')
localStorage.setItem('age', 15)
// 清除所有资料
localStorage.clear()
localStorage.length // 0
因为 Storage 物件只储存字串,当存入的值是物件时,要记得先使用 JSON.stringify() 再存入,否则浏览器会使用 toString() 方法转成字串存入,反之,当从 Web Storage 取得储存的资料时,也要记得使用JSON.parse()将字串转回原本的型别。
根据JavaScript大全,因为任何客户端资料储存区都不涉及加密,加上共用该装置的使用者或是存在於该装置上的恶意软件都能够存取这些资料,所以不建议使用客户端储存区来存放密码,金融帐户号码等敏感资讯。
参考资料:
JavaScript大全
MDN
从Cookie到Storage
JAVASCRIPT.INFO
<<: .Net Core Web Api_笔记15_api结合ADO.NET资料库操作part3_资料删除
记得第一次使用到 css 的 animation 跟 transform 系列效果 做了很多厉害的...
大家安安,欢迎来到铁人赛的第15天! 不知不觉已经过完一半了,再努力坚持下去吧! 昨天已经将网站的原...
元件介绍 Progress circle 跟上一篇 Progress bar 一样是能够展示当前进度...
当你第一次购买 Mac 时,除了学习和适应使用之外,你还探索了击键技巧。 这时候,你需要用好软件才有...
续前面所述,这次要跟各位介绍的是档案上传与资料库功能,Filemanager应在其他平台有都会有类似...