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

localstorage指定域名

基础概念

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

指定域名

localStorage 是基于域名的。这意味着,一个网站设置的 localStorage 数据只能被同一个域名下的页面访问。如果你想让不同子域名的页面共享 localStorage 数据,可以通过设置相同的 localStorage 名称来实现。

优势

  1. 持久性存储:数据不会因为页面刷新或浏览器关闭而丢失。
  2. 跨标签页共享:同一个域名下的不同标签页可以共享 localStorage 数据。
  3. 存储容量较大:通常 localStorage 的存储容量为 5MB 左右。

类型

localStorage 只有一种类型,即字符串类型。如果你需要存储其他类型的数据(如对象或数组),需要先将其转换为字符串(通常使用 JSON.stringify),然后再存储。读取时再使用 JSON.parse 将其转换回原始类型。

应用场景

  1. 用户偏好设置:存储用户的界面偏好设置,如主题颜色、字体大小等。
  2. 缓存数据:缓存一些不经常变化的数据,减少网络请求。
  3. 会话跟踪:虽然 localStorage 没有过期时间,但可以结合其他机制(如定时检查)来实现会话跟踪。

遇到的问题及解决方法

问题:为什么 localStorage 数据在不同子域名之间无法共享?

原因localStorage 是基于域名的,不同子域名的页面默认无法访问彼此的 localStorage 数据。

解决方法:可以通过设置相同的 localStorage 名称,并在访问时指定域名来实现共享。例如,在子域名 sub1.example.comsub2.example.com 之间共享数据:

代码语言:txt
复制
// 在 sub1.example.com 上设置数据
localStorage.setItem('sharedData', JSON.stringify({ key: 'value' }));

// 在 sub2.example.com 上读取数据
const sharedData = JSON.parse(localStorage.getItem('sharedData'));

问题:为什么 localStorage 数据无法读取?

原因

  1. 数据不存在:尝试读取一个不存在的 localStorage 项会返回 null
  2. 跨域问题:不同域名下的页面无法访问彼此的 localStorage 数据。
  3. 浏览器限制:某些浏览器可能禁用了 localStorage 功能。

解决方法

  1. 检查数据是否存在:在读取数据前,先检查该键是否存在。
代码语言:txt
复制
if (localStorage.getItem('key')) {
  const data = localStorage.getItem('key');
  // 处理数据
}
  1. 跨域问题:参考上述共享数据的解决方法。
  2. 浏览器限制:确保浏览器支持 localStorage 功能,并检查是否有相关的浏览器插件或设置禁用了 localStorage

参考链接

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

相关·内容

charles 过滤指定域名

当使用”序列视图”的时候 请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。...对于需要抓取的某个请求,通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。...,你的charles一切正常,访问也正常,而且在active commections里也看到了某个域名的请求信息,但是在主界面死活看到获取到的信息; 不用着急,非常有可能是因为你设置了include的指定域名...,推荐使用结构视图模式下的焦点域名设置;那种模式比这种方法更好,下面是过滤焦点域名后在序列模式下的调用方法; 方法三:过滤焦点域名 在目标的网络请求上右键,选中focus(此时,该域名已经被设置为一个焦点标记了...,会把当前域名单独显示在上面, 而其它的非焦点域名,都会在other Hosts里显示;

4.5K10
  • 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中的所有内容 <!

    82130

    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);

    25810

    cookie、sessionStorage、localStorage

    value1...键值对的方式存储,键名可以自定义,但是有部分键名为保留字段,如expires、path等; cookie的过期时间:使用键名expires设置; cookie的路径:使用键名path,它指定与...=/gim,"\":\"")+"\"}")[key]; } iii.清除cookie 方式1:设置value为null(所有的) 方式2:设置过期时间为当前日期之前,比如1970.1.1 二、localStorage...四、他们之间的区别(对比) 相同点:都存储在客户端 不同点: 1)存储大小 i.cookie数据大小不能超过4k; ii.sessionStorage和localStorage可以达到5M或者更大; 2...)有效时间 localStorage存储持久数据,浏览器关闭后数据不会丢失,除非主动删除数据; sessionStorage数据在当前浏览器窗口关闭后自动删除; cookie在设置的cookie过期时间之前一直有效...ii.sessionStorage和localStorage不会自动把数据发给服务器,仅保存在本地。

    75430

    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中的所有内容 <!

    74520
    领券