`CookieStore` API

cookieStore 是一个比较新的web api
cookieStroe api 之前, 操作cookie :

	document.cookie = "theme=dark; path=/";
	console.log(document.cookie);

这种的问题:

  • 只能返回一个字符串,需要自己手动解析key=value
  • 不方便异步监听,无法知道cookie啥时候变了;
  • 无法精准设置过期时间、SameSite、Secure 等属性,需要拼接字符串。
  • 不适合 Service Worker(Service Worker 没有 document)。
  • 。。。。

CookieStore API 设计得更现代化,解决了上述痛点:

✅提供Promise 风格的 api
✅ 可以在 Service Worker 和 Window 中使用
✅ 内置了监听 Cookie 变化的功能
✅ 支持直接设置属性(过期时间、path、SameSite 等)

cookieStore 对象挂在 window.cookieStore 上 常用方法:

方法说明
cookieStore.get(name)获取单个 Cookie,返回 Promise
cookieStore.getAll([name])获取所有 Cookie,返回数组
cookieStore.set({ name, value, ...options })设置 Cookie,支持属性
cookieStore.delete(name)删除 Cookie
cookieStore.addEventListener('change', handler)监听 Cookie 变化

获取cookie

 // 获取单个cookie
 const themeCookie = await cookieStore.get('theme')
 console.log(themeCookie); 
// { name: "theme", value: "dark", domain: "...", path: "/", ... }

// 获取所有cookie
const allcookie = await cookieStore.getAll()

设置cookie

 // 设置一个带有属性的cookie 
 await cookieStore.set({
	name: 'theme',
	value: 'dark',
	expires: Date.now() + 24 * 60 * 60 * 1000, // 1天后过期
	path: '/',
	sameSite: 'Lax',
  secure: true
})


// 这个 Cookie 只能通过 HTTPS 网站访问,防止被窃取。
// 跨站请求不会轻易携带这个 Cookie,能防御大部分 CSRF 攻击。
// 只有用户主动从别的页面跳转到你的网站(GET 链接点击),才会携带这个 Cookie。

删除cookie

await cookieStore.delete('theme')

监听cookie

 cookieStore.addEventListener('change', (e)=>{
	for(const cookie of e.changed){
		console.log('更新:', cookie.name, cookie.value);
	}
	for (const cookie of e.deleted) {
    console.log('删除:', cookie.name);
  }
})

检测来保证兼容性:

if ('cookieStore' in window) {
  console.log('支持 CookieStore API');
} else {
  console.log('不支持,使用 document.cookie');
}

sameSite: 'Lax'secure: true
这两个是 设置cookie 的安全和 作用域策略

sameSite 控制跨站请求时,cookie 是否被发送,主要用于防御 CSRF(跨站请求伪造攻击)。
有三个取值:

行为常见用途
Strict只在同一站点请求时发送 Cookie,不随任何跨站请求发送安全性最高,但可能影响用户体验(比如从其他网站点击链接跳回来后会丢失登录状态)
Lax在同站点请求总是发送,在部分“安全”的跨站请求也会发送(比如 <a> 跳转 GET 请求),但不会随跨站 POST、iframe、AJAX 请求发送兼顾安全和可用性,现代浏览器的默认值
None跨站请求也发送 Cookie,但必须配合 Secure: true用于需要跨站点共享登录状态的场景(如单点登录、CDN API)

假设你的站点是 https://example.com:

如果 sameSite: ‘Strict’
用户从其他网站点链接跳转到 example.com,浏览器不会带上这个 Cookie(可能导致需要重新登录)。

如果 sameSite: ‘Lax’
点击链接跳转时会带上 Cookie(保持登录),但如果是恶意网站用 发 POST 请求,就不会带 Cookie(防御 CSRF)。
如果 sameSite: ‘None’
无论是 AJAX、iframe、跨域 POST 请求,都会带上 Cookie(需要 secure: true)。

secure: true 表示 这个 Cookie 只能通过 HTTPS 发送,HTTP 请求不会带上它。
这样可以防止 Cookie 在明文 HTTP 传输时被窃取(中间人攻击)。

建议:
登录态、敏感信息的 Cookie → 推荐 sameSite: ‘Lax’ 或 ‘Strict’ + secure: true

跨域共享的 Session Cookie(比如多站点 SSO) → 必须用 sameSite: ‘None’, secure: true

AI 代码审查Review工具 是一个旨在自动化代码审查流程的工具。它通过集成版本控制系统(如 GitHub 和 GitLab)的 Webhook,利用大型语言模型(LLM)对代码变更进行分析,并将审查意见反馈到相应的 Pull Request 或 Merge Request 中。此外,它还支持将审查结果通知到企业微信等通讯工具。 一个基于 LLM 的自动化代码审查助手。通过 GitHub/GitLab Webhook 监听 PR/MR 变更,调用 AI 分析代码,并将审查意见自动评论到 PR/MR,同时支持多种通知渠道。 主要功能 多平台支持: 集成 GitHub 和 GitLab Webhook,监听 Pull Request / Merge Request 事件。 智能审查模式: 详细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行分析,旨在找出具体问题。审查意见会以结构化的形式(例如,定位到特定代码行、问题分类、严重程度、分析和建议)逐条评论到 PR/MR。AI 模型会输出 JSON 格式的分析结果,系统再将其转换为多条独立的评论。 通用审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个变更文件进行整体性分析,并为每个文件生成一个 Markdown 格式的总结性评论。 自动化流程: 自动将 AI 审查意见(详细模式下为多条,通用模式下为每个文件一条)发布到 PR/MR。 在所有文件审查完毕后,自动在 PR/MR 中发布一条总结性评论。 即便 AI 未发现任何值得报告的问题,也会发布相应的友好提示和总结评论。 异步处理审查任务,快速响应 Webhook。 通过 Redis 防止对同一 Commit 的重复审查。 灵活配置: 通过环境变量设置基
【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器的状态空间平均模型的建模策略。该方法通过数学建模手段对直流微电网系统进行精确的状态空间描述,并对其进行线性化处理,以便于系统稳定性分析与控制器设计。文中结合Matlab代码实现,展示了建模与仿真过程,有助于研究人员理解和复现相关技术,推动直流微电网系统的动态性能研究与工程应用。; 适合人群:具备电力电子、电力系统或自动化等相关背景,熟悉Matlab/Simulink仿真工具,从事新能源、微电网或智能电网研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网的动态建模方法;②学习DC-DC变换器在耦合条件下的状态空间平均建模技巧;③实现系统的线性化分析并支持后续控制器设计(如电压稳定控制、功率分配等);④为科研论文撰写、项目仿真验证提供技术支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐步实践建模流程,重点关注状态变量选取、平均化处理和线性化推导过程,同时可扩展应用于更复杂的直流微电网拓扑结构中,提升系统分析与设计能力。
内容概要:本文介绍了基于物PINN驱动的三维声波波动方程求解(Matlab代码实现)理信息神经网络(PINN)求解三维声波波动方程的Matlab代码实现方法,展示了如何利用PINN技术在无需大量标注数据的情况下,结合物理定律约束进行偏微分方程的数值求解。该方法将神经网络与物理方程深度融合,适用于复杂波动问题的建模与仿真,并提供了完整的Matlab实现方案,便于科研人员理解和复现。此外,文档还列举了多个相关科研方向和技术服务内容,涵盖智能优化算法、机器学习、信号处理、电力系统等多个领域,突出其在科研仿真中的广泛应用价值。; 适合人群:具备一定数学建模基础和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事计算物理、声学仿真、偏微分方程数值解等相关领域的研究人员; 使用场景及目标:①学习并掌握PINN在求解三维声波波动方程中的应用原理与实现方式;②拓展至其他物理系统的建模与仿真,如电磁场、热传导、流体力学等问题;③为科研项目提供可复用的代码框架和技术支持参考; 阅读建议:建议读者结合文中提供的网盘资源下载完整代码,按照目录顺序逐步学习,重点关注PINN网络结构设计、损失函数构建及物理边界条件的嵌入方法,同时可借鉴其他案例提升综合仿真能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网开三面

你的鼓励将是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值