在现代 Web 应用中,跨标签页通信的需求越来越普遍。无论是实现多标签页之间的数据同步,还是构建实时协作功能,跨标签页通信都能极大地提升用户体验。今天,我们将探讨一种简单而高效的实现方式:Web Storage

一、什么是 Web Storage?

Web Storage 是一种在浏览器中存储数据的机制,它提供了两种存储方式:localStoragesessionStorage。这两种存储方式的主要区别在于数据的持久性和作用域。

  • localStorage:数据存储在浏览器中,直到手动清除,适用于长期存储数据。
  • sessionStorage:数据存储在当前会话中,关闭浏览器标签页后数据会自动清除,适用于临时存储数据。

(一)特点

  • 简单易用:API 简洁,易于上手。
  • 同源限制:所有存储的数据必须在同源页面之间访问。
  • 存储容量localStorage 通常有 5MB 的存储空间,sessionStorage 的存储空间较小。

(二)适用场景

  • 数据共享:在多个标签页之间共享数据。
  • 状态同步:同步用户在多个标签页中的操作状态。
  • 临时存储:存储用户在当前会话中的临时数据。

二、使用 Web Storage 实现跨标签页通信

(一)localStorageonstorage 事件

localStorage 提供了一个 onstorage 事件,当存储的数据发生变化时,会触发该事件。这个事件可以用来实现跨标签页通信。

示例代码

页面一:设置数据

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>页面一</title>
</head>
<body><input type="text" id="content" placeholder="请输入消息"><button id="btn">发送消息</button><script>const content = document.querySelector("#content");const btn = document.querySelector("#btn");btn.onclick = function () {localStorage.setItem("message", content.value);};</script>
</body>
</html>

页面二:监听数据变化

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>页面二</title>
</head>
<body><script>window.onstorage = function (e) {if (e.key === "message") {console.log("接收到消息:", e.newValue);}};</script>
</body>
</html>

(二)效果

  1. 打开两个标签页,分别加载页面一和页面二。
  2. 在页面一中输入消息并点击“发送消息”按钮。
  3. 页面二的控制台会立即打印出接收到的消息。

(三)sessionStorage 的使用

sessionStorage 也可以用来实现跨标签页通信,但它的作用域仅限于当前会话。如果需要在多个标签页之间共享数据,建议使用 localStorage

三、注意事项

(一)同源限制

Web Storage 只能在同源页面之间使用。如果页面的协议、域名或端口不同,存储的数据将无法共享。

(二)存储容量

虽然 localStorage 提供了较大的存储空间,但仍然有限制。如果存储的数据过多,可能会导致存储失败。

(三)性能影响

虽然 Web Storage 的性能开销较小,但在高频率读写数据时,仍需注意对性能的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86068.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86068.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86068.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大疆上云api 无人机摄像头红外调色模式

# topic thing/product/{你的机场}/property/set# 监听topic&#xff0c;获取设置结果 thing/product//property/set_reply#mqtt https://developer.dji.com/doc/cloud-api-tutorial/cn/api-reference/dock-to-cloud/mqtt/aircraft/m3d-properties.htmlthermal_current_palet…

DeepSeek与ChatGPT:免费与付费背后的选择逻辑

内容简介&#xff1a; 为什么有免费的DeepSeek&#xff0c;很多人还在付费用ChatGPT&#xff1f;作为20年互联网老兵&#xff0c;作者通过实测发现&#xff1a;AI工具好坏七成看你怎么跟它聊天。DeepSeek不是真的不如ChatGPT&#xff0c;而是需要掌握"撩AI"的技巧。文…

【nvidia-H100-ib排障实战1】:InfiniBand 带宽测试命令深度解析,找到影响生产集群性能的ib

目录 InfiniBand 带宽测试命令深度解析 一、命令整体功能概述 二、服务器端命令解析:ib_write_bw -a -d 1. 命令主体功能 2. 关键参数解析 3. 服务器端工作模式 三、客户端命令解析:ib_write_bw -a -d 1. 新增参数解析 2. 客户端工作流程 四、核心测试指标与输出解…

华为云Flexus+DeepSeek征文|基于华为云一键部署Dify LLM 应用构建 PPT 生成助手的开发与实践

目录 前言 1 华为云部署 Dify 平台简介 2 华为云 Dify 平台的部署与登录使用 3 模型接入与工具安装 3.1 接入 DeepSeek 大模型 3.2 安装 Markdown 转 PPT 工具 4 构建 PPT 生成助手应用工作流 4.1 开始节点 4.2 文档提取器 4.3 文本转 PPT 文稿 LLM 4.4 Markdown 转…

NW896NX769美光固态芯片NX790NX793

美光固态芯片深度解析&#xff1a;NX769、NX790、NX793与NW896技术全景 一、技术架构与核心特性 存储工艺与性能基础 美光NX系列&#xff08;含NX769/790/793&#xff09;及NW896均基于G9 NAND技术&#xff0c;采用176层TLC&#xff08;Triple-Level Cell&#xff09;3D NAND…

图像融合的评价指标

目录 一、常用指标总览 1.1 指标分类 二、 指标解析与python代码实现&#xff08;部分&#xff09; 2.1 基于信息熵的评估指标 A. 信息熵&#xff1a;/Entropy/EN B. 交叉熵 C.相关熵&#xff1a;Mutual Information/MI D.峰值信噪比/Peak signal-to-noise ratio/PSNR E. 基于边…

【数据结构初阶】--顺序表(一)

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的享受。 前言&#xff1a;在上篇博客中…

Gateway路径匹配规则易错点

目录 一、问题描述 二、问题产生原因&#xff1a; 三、总结 一、问题描述 在做微服务的项目的时候&#xff0c;选择在nacos上配置Gateway网关的路由规则&#xff0c;然后在进行前后端联调测试的时候发现&#xff0c;部分的微服务可以正常访问&#xff0c;但是commerce-servic…

什么是大模型应用开发

一、概念点 自然语言处理&#xff08;NLP:Natural Language Processing&#xff09; 大模型&#xff08;LLM:Large Language Models&#xff09; 模型部署&#xff1a;云部署、本地部署、开放API 本地部署最简单的一种方案&#xff1a;ollama https://ollama.com 二、大模型应…

Linux系统能ping通ip但无法ping通域名的解决方法

一、先确认系统网络管理服务 现代 Linux 发行版常用 NetworkManager 或 systemd-networkd 管理网络&#xff0c;而非传统 networking.service &#xff0c;先检查系统在用的网络服务&#xff1a; 1.检查 NetworkManager 执行以下命令&#xff1a; sudo systemctl status …

0_序章导论

​​课程整体框架​​ ​​时长​​&#xff1a;4周 ​​终极目标​​&#xff1a; &#x1f449; 学完后比大公司CEO更懂AI&#xff0c;能领导团队解决实际问题 ​​每周核心内容分解​​ ​​第一周&#xff1a;重新认识AI的本质​​ ​​弱AI&#xff08;ANI&#xff09; …

docker一键清除指令

在 Linux 系统中&#xff0c;关闭 Docker 服务及容器的指令如下&#xff0c;具体操作需根据需求选择&#xff1a; 1. 停止 Docker 容器 (1) 停止所有正在运行的容器 # 停止所有运行中的容器&#xff08;推荐优雅关闭&#xff09; docker stop $(docker ps -q)(2) 强制停止所有…

阿里云主机自动 HTTPS 证书部署踩坑实录

阿里云主机自动 HTTPS 证书部署踩坑实录 前言 请原谅本篇标题,阿里云其实非常好用,只是细节很多,尤其是在HTTPS证书的配置和使用上。希望通过这篇文章,能够帮助到遇到类似问题的朋友们。 原理 服务器运行 acme.sh 脚本,自动申请和更新 Let’s Encrypt 的 SSL 证书。ac…

Vue Class绑定:字符串形式详解与应用

Vue Class绑定:字符串形式详解与应用 在Vue中,class绑定有多种形式,其中字符串形式是最基础且常用的一种。我将通过一个完整的示例展示其用法和优势。 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><…

MySQL 与 Oracle 分区表详解:相同点与不同点

在数据库管理中&#xff0c;随着数据量的不断增长&#xff0c;如何高效地存储和查询数据成为了一个关键问题。分区表技术通过将大型表划分为多个更小、更易于管理的部分&#xff0c;显著提升了数据库的性能和可维护性。MySQL 和 Oracle 作为两款主流的关系型数据库管理系统&…

在MATLAB中绘制阵列天线的散射方向图

在MATLAB中绘制阵列天线的散射方向图 RCS元因子、RCS阵因子、总的RCS 单基地雷达 文章目录 前言一、雷达散射界面的定义二、阵列天线的雷达散射界面三、MATLAB仿真总结 前言 \;\;\;\;\; 在无线通信、雷达和天线设计中&#xff0c;分析阵列天线的散射特性至关重要。散射方向图&a…

SaaS+AI架构实战,

近年来&#xff0c;随着云计算技术的成熟和市场需求的变化&#xff0c;SaaS&#xff08;软件即服务&#xff09;已成为企业数字化转型的核心工具。与传统软件相比&#xff0c;SaaS通过云端按需交付服务&#xff0c;大幅降低了企业的IT部署成本&#xff0c;同时提供了更高的灵活…

网络安全应急响应实战笔记

网络安全应急响应实战笔记 项目介绍 面对各种各样的安全事件&#xff0c;我们该怎么处理&#xff1f; 这是一个关于安全事件应急响应的项目&#xff0c;从系统入侵到事件处理&#xff0c;收集和整理一些案例进行分析。 GitHub 地址&#xff1a;https://github.com/Bypass007…

国产Linux银河麒麟操作系统安装开源免费Draw.io(diagrams.net)替代Visio

一、Draw.io&#xff08;diagrams.net&#xff09;与 Microsoft Visio 对比&#xff1a; Draw.io&#xff08;现更名为 diagrams.net&#xff09;是一款流行的免费在线图表工具&#xff0c;可以作为 Microsoft Visio 的替代品。draw.io 支持 UML、流程图、架构图&#xff0c;模…

asio之socket RAII管理socket_holder

简介 socket_holder实现对socket的RAII管理 结构 #mermaid-svg-7AbOnlAgmXN8WUnw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7AbOnlAgmXN8WUnw .error-icon{fill:#552222;}#mermaid-svg-7AbOnlAgmXN8WUnw .er…