新闻中心
HTML如何操作本地存储_Cookie与WebAPI应用【指南】
Cookie和Web Storage(localStorage、sessionStorage)是浏览器中保存用户数据的两种机制,分别适用于有有效期限制、持久化存储和会话级临时存储场景,且在生命周期、作用域及安全性上各具特点。

如果您希望在网页中保存用户偏好、登录状态等少量数据,浏览器提供了 Cookie 和 Web Storage(localStorage 与 sessionStorage)两种主流机制。它们在生命周期、作用域和操作方式上存在显著差异。以下是针对 HTML 环境下操作本地存储的实用方法:
一、使用 document.cookie 设置与读取 Cookie
Cookie 是由服务器通过 Set-Cookie 响应头写入,也可由 J*aScript 在客户端直接设置,但需注意其大小限制(通常 4KB)、作用域约束及默认不支持 HTTP-only 标志的客户端写入特性。
1、设置一个有效期为 7 天的 Cookie:
document.cookie = "username=JohnDoe; expires=" + new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toUTCString() + "; path=/";
2、读取所有 Cookie 字符串:
const allCookies = document.cookie;
3、解析指定 Cookie 名称的值(需手动分割):
const cookies = document.cookie.split("; ").reduce((acc, pair) => { const [key, value] = pair.split("="); acc[key] = decodeURIComponent(value); return acc; }, {});
const username = cookies.username;
二、使用 localStorage 持久化保存键值对
localStorage 提供无过期时间的本地键值存储,数据在关闭浏览器后仍保留,且仅限同源页面访问,容量通常为 5–10MB。
1、保存字符串数据:
localStorage.setItem("theme", "dark");
2、读取已保存的值:
const currentTheme = localStorage.getItem("theme");
3、删除特定键:
localStorage.removeItem("theme");
4、清空全部数据:
localStorage.clear();
三、使用 sessionStorage 保存会话级数据
sessionStorage 的数据仅在当前浏览器标签页生命周期内有效,关闭标签页即自动清除,适用于临时表单草稿、导航状态等场景。
拾贝
一键同步微信读书所有笔记和划线,并在新标签页回顾
186
查看详情
1、写入会话数据:
sessionStorage.setItem("draftContent", "未完成的编辑内容");
2、读取会话数据:
const draft = sessionStorage.getItem("draftContent");
3、检查某键是否存在:
if (sessionStorage.key(0) !== null) { /* 至少有一个键 */ }
四、监听 storage 事件实现跨标签页通信
当同一源下的其他窗口或标签页修改 localStorage 或 sessionStorage 时,当前页面可通过 window.addEventListener("storage") 接收变更通知,但注意:触发事件的页面自身不会收到该事件。
1、添加 storage 监听器:
window.addEventListener("storage", (event) => { console.log("键名:" + event.key); console.log("旧值:" + event.oldValue); console.log("新值:" + event.newValue); console.log("来源页面 URL:" + event.url); });
2、确保事件监听在页面加载后立即注册:
document.addEventListener("DOMContentLoaded", () => { window.addEventListener("storage", handleStorageChange); });
五、安全操作 Cookie 的注意事项
直接通过 J*aScript 操作 Cookie 存在 XSS 风险,尤其当 Cookie 包含敏感信息时。应避免设置 document.cookie = "auth_token=xxx" 类型的明文凭证;若必须使用,应配合 HttpOnly=false 显式声明,并确保服务端始终校验签名与时效性。
1、禁止将密码、JWT 全量令牌存入可被 JS 访问的
Cookie:
应优先使用 HttpOnly Cookie 传输认证凭据,前端仅通过 API 调用间接使用。
2、设置 Secure 标志防止非 HTTPS 传输:
document.cookie = "session_id=abc123; Secure; SameSite=Lax";
3、限制作用域以减少泄露面:
document.cookie = "cart_items=[1,2,3]; path=/shop; domain=example.com";
以上就是HTML如何操作本地存储_Cookie与WebAPI应用【指南】的详细内容,更多请关注其它相关文章!
# 客户端
# 建设工程价格查询网站
# 如何将网站推广比较好
# 内江市营销短视频推广平台
# 长岭seo网站推广
# 直销网站建设方案
# 渭南网站建设流程有哪些
# 南昌seo优化分析
# 泰州网站优化设计公司
# 灵通网站建设推广策略研究
# 大学论文网站建设
# 是由
# 如何在
# 模态
# 如果您
# 上传
# javascript
# 键值
# 适用于
# 两种
# 拾贝
# 持久化
# 作用域
# win
# ai
# session
# 浏览器
# cookie
# 前端
# js
# html
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
qq音乐在线播放入口_qq音乐电脑版登录链接
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
C#中解析不规范的HTML为XML 常见的坑与解决办法
PHP表单数据传递:如何通过隐藏输入字段获取动态ID
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
微博网页版直接访问 微博网页版账号管理快速入口
iwriter统一登录平台 iwrite账号密码登录页面
如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
Win11怎么开启省电模式_Win11电池节电模式自动开启
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
如何使 Jest 模拟函数默认抛出错误以提高测试效率
在Pyomo中实现基于变量的条件约束:Big-M方法详解
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】
如何在 Excel Online 和 Google 表格中更改日期格式
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
深入理解Promise链:如何在catch后中断then的执行
poki网页游戏推荐_poki免费游戏平台入口
抖音创作助手登录入口_抖音创作辅助工具官网直达
AO3访问入口汇总 AO3网页版同人作品一键直达
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
谷歌google账号注册详细步骤 谷歌账号注册官方教程
c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学
如何使用纯J*aScript判断Input元素是否在特定类容器内
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
excel怎么制作工资条 excel快速生成工资条的方法
J*a应用集成GitHub CLI与API认证指南
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
b站怎么删除评论_b站评论管理与删除操作
Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏
C++如何生成随机数_C++ random库使用方法与范围设置
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
c++ dfs和bfs代码 c++深度广度优先搜索算法
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全
Python实时数据流中的动态最值查找策略
c++项目目录结构应该如何组织_c++工程化项目结构规范
深入理解J*a链表中的IPosition接口与使用
Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】
outlook中文官网入口地址 outlook官方中文版直达首页链接
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】
小红书网页版入口链接分享 小红书官网直接进
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
Go语言中的*string:深入理解字符串指针
PHP 枚举:根据字符串获取枚举案例的策略与实现


2025-12-13
浏览次数:次
返回列表