首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

localstorage数据库

基础概念

LocalStorage 是 Web Storage API 的一部分,它提供了一种在用户的浏览器中存储键值对数据的方式。与 SessionStorage 不同,LocalStorage 中的数据没有过期时间,会一直保存在用户的设备上,直到被明确删除。

优势

  1. 持久性存储:数据在页面刷新或浏览器关闭后依然存在。
  2. 存储空间大:通常每个来源(协议、主机、端口)有 5MB 的存储空间。
  3. 简单易用:提供了简单的 API 来存储和检索数据。
  4. 安全性:数据仅限于同一来源访问,提供了基本的安全保障。

类型

LocalStorage 只有一种类型,即基于字符串的键值对存储。虽然它不能直接存储复杂数据类型,但可以通过 JSON 序列化和反序列化来间接存储对象和数组。

应用场景

  1. 用户偏好设置:保存用户的界面主题、字体大小等设置。
  2. 缓存数据:临时存储从服务器获取的数据,减少网络请求。
  3. 会话跟踪:在不使用 Cookie 的情况下,跟踪用户的会话状态。
  4. 离线应用:在没有网络连接时,提供基本的用户体验。

常见问题及解决方案

问题1:LocalStorage 数据不生效

原因:可能是由于以下原因之一:

  • 键名拼写错误。
  • 存储空间已满。
  • 浏览器不支持 LocalStorage。

解决方案

  • 检查键名是否正确。
  • 清理其他不必要的数据以释放空间。
  • 使用 try-catch 块捕获并处理不支持 LocalStorage 的情况。
代码语言:txt
复制
try {
  localStorage.setItem('key', 'value');
} catch (e) {
  if (e instanceof DOMException && e.code === 22) {
    console.error('LocalStorage is not supported in this browser.');
  } else {
    throw e;
  }
}

问题2:LocalStorage 数据泄露

原因:LocalStorage 中的数据是以明文形式存储的,如果存储敏感信息,可能会被恶意脚本访问。

解决方案

  • 避免在 LocalStorage 中存储敏感信息。
  • 如果必须存储,可以使用加密算法对数据进行加密。
代码语言:txt
复制
// 加密示例(使用简单的 Base64 编码,实际应用中应使用更安全的加密方法)
const secret = btoa('sensitive data');
localStorage.setItem('secret', secret);

// 解密示例
const storedSecret = localStorage.getItem('secret');
const originalData = atob(storedSecret);

问题3:跨域访问 LocalStorage

原因:出于安全考虑,不同源的页面无法访问彼此的 LocalStorage。

解决方案

  • 确保所有需要访问同一份数据的页面都来自同一个源。
  • 如果需要跨域共享数据,可以考虑使用服务器端存储或第三方存储服务。

参考链接

请注意,以上代码示例和解决方案仅供参考,实际应用中可能需要根据具体情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • localStorage 的相关运用

    localStorage 是浏览器自带的一个属性,只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。...localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面被关闭时,存储在 sessionStorage...应注意,无论数据存储在 localStorage 还是 sessionStorage ,它们都特定于页面的协议。 另外,localStorage 中的键值对总是以字符串的形式存储。...localStorage.setItem("key", JSON.stringify(arr)); 这个方法就是将数组arr存到了浏览器的localStorage 中,它的参数名叫 key const...// 清除本地存储中的所有值 localStorage.clear(); // 本地存储中删除特定项 localStorage.removeItem(key);

    27110

    localStorage详细总结

    的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。...二、localStorage的优势与局限: 优势: 1、localStorage拓展了cookie的4K限制 2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库...localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3、localStorage在浏览器的隐私模式下面是不可读取的 4、localStorage...本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡 5、localStorage不能被爬虫抓取到 三、localStorage的使用: localStorage是html5的新特性...的删除: 1、清空localStorage:调用localStorage的clear方法将清空localStorage中的所有内容 <!

    82530

    cookie、sessionStorage、localStorage

    =/gim,"\":\"")+"\"}")[key]; } iii.清除cookie 方式1:设置value为null(所有的) 方式2:设置过期时间为当前日期之前,比如1970.1.1 二、localStorage...iii.removeItem(key)移除数据 iv.clear()清空数据 3.事件监听 [javascript] view plain copy function handleFunc(e) { //对象e为localStorage...四、他们之间的区别(对比) 相同点:都存储在客户端 不同点: 1)存储大小 i.cookie数据大小不能超过4k; ii.sessionStorage和localStorage可以达到5M或者更大; 2...)有效时间 localStorage存储持久数据,浏览器关闭后数据不会丢失,除非主动删除数据; sessionStorage数据在当前浏览器窗口关闭后自动删除; cookie在设置的cookie过期时间之前一直有效...ii.sessionStorage和localStorage不会自动把数据发给服务器,仅保存在本地。

    75930

    localStorage详细总结

    的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。...二、localStorage的优势与局限: 优势: 1、localStorage拓展了cookie的4K限制 2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库...localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3、localStorage在浏览器的隐私模式下面是不可读取的 4、localStorage...本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡 5、localStorage不能被爬虫抓取到 三、localStorage的使用: localStorage是html5的新特性...的删除: 1、清空localStorage:调用localStorage的clear方法将清空localStorage中的所有内容 <!

    75920

    localStorage和sessionStorage本地存储

    if(window.localStorage) { console.log("浏览器支持localStorage"); }else { console.log("浏览器不支持localStorage...web SQL Database Web SQL Database 使用的是 SQLite 数据库,允许应用程序通过一个异步的 JavaScript 接口访问数据库。...SQLite是一款轻型的数据库。 openDatabase() 方法,使用现有的数据库或新建数据库来创建数据库对象。 transaction() 方法,允许设计者控制事务的提交或回滚。...操作Web sql数据库 var db = openDatabase("TestDB", "1.0", "测试", xxxx) 共5个参数: 数据库名 版本号 数据库的描述 数据库的大小 创建回调函数...localStorage(长期存储)、sessionStorage(会话存储)是H5中的本地web存储提供的两个接口, 相当于前端一个小型的本地数据库,用于在本地存储一些不敏感的数据,隶属于window

    2.1K30

    js本地存储:localStorage

    一.简介 localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库 ——注意:在IE8以上的IE版本才支持localStorage这个属性。...二.具体使用方式如下: 1.localStorage – 没有时间限制的数据存储    var arr=[1,2,3];    localStorage.setItem("temp",arr); //存入...清空 localStorage   localStorage.clear(); //  3.删除键值对   localStorage.removeItem("arr");  注意:存入的数据只能以 字符串...("temp2", obj);   //JSON字符串转JSON对象   obj=JSON.parse(localStorage.getItem("temp2")); 四.在谷歌浏览器查看 localStorage...: 未经允许不得转载:肥猫博客 » js本地存储:localStorage

    4.5K20

    JavaScript localStorage 的使用

    两种不同的 web storage 对象localStorage:可以跨浏览器分页使用、用户关掉分页或浏览器再打开数据仍不会消失,且数据无有效期限制,数据将永久被保留。...数据存储的格式数据是以类似 JSON 的 Key-value pair 格式存储key 和 value 皆需要为字符串如何使用存储数据:setItem()localStorage.setItem(key..., value)sessionStorage.setItem(key, value)取出数据:getItem()localStorage.getItem(key)sessionStorage.getItem...(key)移除数据:removeItem()localStorage.removeItem(key)sessionStorage.removeItem(key)如何找到存储的数据在 DevTools console...JSON.stringify() 方法,将要存储的数据转换为 JSON 格式的字符串;要取出数据时,再通过 JSON.parse() 方法,将数据转换回原本的格式:使用 setItem() 方法将数据存储至 localStorage

    4300

    浅谈localStorage的性能

    浅谈localStorage的性能 如果说2012年的web开发世界有什么大事的话,人们印象最深的恐怕就是localStorage的性能了,这场争论开始于Christian Heilmann写的一篇文章...: There is no simple solution for localStorage(中文版:本地存储并不简单)。...localStorage读写10KB的数据的时间 PSA: DOM localStorage considered harmful localStorage的运行解析(转) localStorage的关键问题在于它是通过同步操作的方式来进行文件...而言 比谷歌的存储要快) 量级为10的时候 读取性能 window.localStorage.clear() console.log(JSON.stringify(window.localStorage...www.jianshu.com/p/a47baf68addb localStorage读取性能 HTML5新特性之localStorage的使用技巧,不看看你可能真的不知道

    3.3K20
    领券