【Web API系列】Web Shared Storage API 深度解析:WindowSharedStorage 接口实战指南
前言
在当今 Web 应用日益复杂的背景下,跨页面数据共享与隐私保护已成为现代浏览器技术演进的重要命题。传统 Web 存储方案(如 Cookies、LocalStorage)在应对多维度用户特征存储、跨上下文数据共享等场景时,逐渐暴露出技术瓶颈与安全隐患。为解决这一挑战,W3C 提出了革命性的 Shared Storage API 规范,而其中的 WindowSharedStorage 接口正是其核心实现载体。
本专题将从底层技术原理出发,系统解析 WindowSharedStorage 的设计哲学与实现机制。通过 7 大部分构成的技术矩阵,你将深入掌握:接口架构设计、Worklet 执行模型、隐私沙箱集成机制等核心知识点。本文不仅包含完整的代码示例体系,更将揭示浏览器厂商在实现该 API 时的工程考量,如跨进程数据同步、存储配额动态分配等关键技术细节。
作为 Web 开发领域的进阶型技术方案,Shared Storage API 正逐步成为构建下一代智能 Web 应用的关键基础设施。通过本文的研读,您将具备在复杂业务场景(如千人千面的内容推荐系统、隐私友好的广告归因平台等)中合理运用该技术的能力,同时建立起对 Web 存储技术演进方向的深刻认知。
一、WindowSharedStorage 架构解析
1.1 接口定位与设计目标
WindowSharedStorage 作为 Shared Storage API 的入口接口,其核心设计目标可概括为以下三点:
设计维度 | 技术特征 | 实现方式 |
---|---|---|
跨上下文存储 | 支持跨同源 iframe、窗口的数据共享 | 基于 Origin 隔离的存储空间 |
隐私保护 | 防数据泄露的沙箱机制 | 数据访问需通过注册的 Worklet 模块 |
安全执行 | 防脚本注入的独立执行环境 | 基于 JavaScript Worklet 的隔离运行时 |
// 典型初始化流程
if (window.sharedStorage) {const sharedStorage = window.sharedStorage;// 验证 Worklet 支持状态if (sharedStorage.worklet) {initializeWorkletModule();} else {console.warn('SharedStorage Worklet not supported');}
}
1.2 核心属性:worklet 系统
Worklet 属性是连接主线程与安全执行环境的关键桥梁,其技术实现包含以下关键点:
-
模块加载机制:
async function loadWorkletModule() {try {await sharedStorage.worklet.addModule('https://example.com/storage-operations.js',{ credentials: 'omit' });console.log('Worklet module loaded successfully');} catch (error) {console.error('Module load failed:', error);} }
-
执行环境隔离特性:
- 独立 JavaScript 堆栈
- 无 DOM/BOM 访问权限
- 受限的 API 访问白名单
1.3 存储空间管理模型
WindowSharedStorage 的存储架构采用分层的空间管理策略:
层级 | 存储类型 | 生命周期 | 容量限制 |
---|---|---|---|
L1 | 高频操作缓存 | 会话级 | 100 KB |
L2 | 持久化存储区 | 永久* | 5 MB |
L3 | 扩展存储区 | 需申请 | 动态分配 |
*注:持久化存储受浏览器数据清理策略影响
二、核心方法深度剖析
2.1 run() 方法执行机制
Run 方法的工作流程包含 4 个关键阶段:
const runOperation = async () => {const result = await sharedStorage.run('audience-segmentation', { audienceType: 'premium' });// 结果处理逻辑if (result.status === 'success') {processSegmentationData(result.data);}
};
执行阶段说明:
- 参数序列化:采用结构化克隆算法
- 跨进程通信:通过 IPC 通道与 Worklet 进程交互
- 沙箱执行:在独立 JavaScript 上下文中运行
- 结果反序列化:限制返回数据大小(默认 1 MB)
2.2 selectURL() 动态路由决策
该方法常用于智能流量分配场景,典型实现模式:
async function determineContentVersion() {const urls = [{ url: "/variant-a.html", weight: 0.5 },{ url: "/variant-b.html", weight: 0.3 },{ url: "/control.html", weight: 0.2 }];const selectedURL = await sharedStorage.selectURL('content-experiment',urls,{ data: { userId: "12345" } });window.location.href = selectedURL;
}
权重分配算法:
- 基于 Fisher-Yates 的随机洗牌算法
- 动态权重调整机制
- 流量分配容差控制(±2%)
三、实战应用场景与案例
3.1 智能广告归因系统
构建隐私安全的广告转化追踪平台:
// 广告展示端
sharedStorage.run('ad-impression', {campaignId: 'c123',creativeId: 'd456',timestamp: Date.now()
});// 转化跟踪端
sharedStorage.selectURL('conversion-tracking', [{ url: "/convert?source=email", weight: 0.7 },{ url: "/convert?source=social", weight: 0.3 }
], {data: { conversionType: 'purchase',value: 199.99}
});
数据关联策略:
- 使用 HMAC-SHA256 签名机制
- 时间窗口关联(默认 30 天)
- 差分隐私噪声注入
3.2 跨设备用户体验同步
实现多终端状态同步的技术方案:
// 移动端
sharedStorage.run('sync-device-state', {lastActivity: 'video-playback',progress: 85.6,deviceId: 'mobile-xyz'
});// 桌面端
const continueURL = await sharedStorage.selectURL('resume-activity', [{ url: '/continue-on-desktop' }],{ deviceGroup: 'personal' }
);
同步技术要点:
- 设备指纹哈希算法
- 心跳检测机制
- 冲突解决策略(最后写入优先)
四、安全与隐私保护体系
4.1 数据访问控制矩阵
操作类型 | 主线程访问 | Worklet 访问 | 跨源访问 |
---|---|---|---|
读取存储 | ❌ | ✅ | ❌ |
写入存储 | ❌ | ✅ | ❌ |
删除存储 | ✅ | ✅ | ❌ |
4.2 隐私沙箱集成方案
WindowSharedStorage 与 Privacy Sandbox 的协同工作机制:
-
兴趣组 API 集成:
sharedStorage.run('update-interest-group', {groupName: 'travel-enthusiasts',biddingLogic: generateBid,dailyUpdate: true });
-
FLEDGE 协议支持:
- 实时竞价数据隔离
- K-匿名性保证
- 数据时效性控制
五、性能优化最佳实践
5.1 存储操作优化策略
优化维度 | 推荐方案 | 风险提示 |
---|---|---|
批量操作 | 合并写操作 | 事务大小限制 |
缓存策略 | L1 缓存命中 | 数据一致性风险 |
数据压缩 | 使用 ArrayBuffer | 编解码开销 |
5.2 Worklet 性能调优
高效模块设计示例:
// storage-operations.js
class OptimizedOperations {async processData(params) {// 流式处理大数据集const stream = params.data.getReader();while (true) {const { done, value } = await stream.read();if (done) break;this.processChunk(value);}}processChunk(chunk) {// SIMD 优化处理const view = new Uint32Array(chunk);for (let i = 0; i < view.length; i += 4) {// 向量化运算}}
}register('optimized-ops', OptimizedOperations);
六、浏览器兼容性与渐进增强
6.1 兼容性现状(截至 2025.04)
浏览器 | 版本支持 | 功能完整度 |
---|---|---|
Chrome | 118+ | 100% |
Edge | 118+ | 100% |
Firefox | 在研 | 实验性支持 |
Safari | 技术预览版 | 基础功能 |
6.2 降级方案设计
优雅降级实现示例:
function getSharedStorage() {if (window.sharedStorage) {return {async run(op, data) {return window.sharedStorage.run(op, data);},// 其他方法代理};}// 降级到 IndexedDBreturn {async run(op, data) {const db = await openDatabase();return db.transaction('run', 'readwrite').objectStore('operations').put({ op, data });}};
}
七、调试与问题排查
7.1 Chrome 开发者工具专项支持
调试功能全景图:
-
存储监控面板:
- 实时存储空间占用
- 操作历史记录追溯
- 数据变更热图分析
-
Worklet 调试器:
// 启用远程调试 sharedStorage.worklet.setDebugOptions({breakpoints: true,performanceProfiling: true });
7.2 常见异常处理指南
错误代码 | 原因分析 | 解决方案 |
---|---|---|
QUOTA_EXCEEDED | 存储空间不足 | 清理旧数据,请求扩展配额 |
MODULE_NOT_LOADED | Worklet 未初始化 | 检查模块加载顺序 |
OPERATION_TIMEOUT | 执行超时(默认 5s) | 优化处理逻辑复杂度 |
总结
WindowSharedStorage 作为 Web 存储技术演进的重要里程碑,其设计充分平衡了功能强大性与隐私安全性。通过本文的体系化解析,您应该已经掌握:
- 如何构建基于 Worklet 的安全存储架构
- 复杂业务场景下的高级应用模式
- 性能优化与异常处理的全套方案
在具体实践中,建议遵循以下原则:
- 采用渐进增强策略应对兼容性问题
- 建立数据生命周期管理机制
- 定期审计存储使用合规性
随着 Privacy Sandbox 生态的持续完善,WindowSharedStorage 必将在智能 Web 应用开发中发挥更重要的作用。建议保持对 W3C 规范演进的关注,及时掌握新特性的应用方法。
相关文章:
【Web API系列】Web Shared Storage API 深度解析:WindowSharedStorage 接口实战指南
前言 在当今 Web 应用日益复杂的背景下,跨页面数据共享与隐私保护已成为现代浏览器技术演进的重要命题。传统 Web 存储方案(如 Cookies、LocalStorage)在应对多维度用户特征存储、跨上下文数据共享等场景时,逐渐暴露出技术瓶颈与…...
Eureka、LoadBalance和Nacos
Eureka、LoadBalance和Nacos 一.Eureka引入1.注册中心2.CAP理论3.常见的注册中心 二.Eureka介绍1.搭建Eureka Server 注册中心2.搭建服务注册3.服务发现 三.负载均衡LoadBalance1.问题引入2.服务端负载均衡3.客户端负载均衡4.Spring Cloud LoadBalancer1).快速上手2)负载均衡策…...
智能体MCP 实现数据可视化分析
参考: 在线体验 https://www.doubao.com/chat/ 下载安装离线体验 WPS软件上的表格分析 云上创建 阿里mcp:https://developer.aliyun.com/article/1661198 (搜索加可视化) 案例 用cline 或者cherry studio实现 mcp server:excel-mcp-server、quickchart-mcp-server...
3小时速通Python-Python学习总部署、总预览(一)
目录 Python的关键字有哪些: 编辑 代码:1-5: 代码:6-10: 代码:11-15: 代码:16-20: 代码:21-25: 代码:26-27: Pyt…...
机器学习基础 - 分类模型之决策树
决策树 文章目录 决策树简介决策树三要素1. 特征的选择1. ID32. C4.53. CART2. 剪枝处理0. 剪枝的作用1. 预剪枝2. 后剪枝QA1. ID3, C4.5, CART 这三种决策树的区别2. 树形结构为何不需要归一化?3. 分类决策树与回归决策树的区别4. 为何信息增益会偏向多取值特征?4. 为何信息…...
Java面向对象的三大特性
## 1. 封装(Encapsulation) 封装是将数据和操作数据的方法绑定在一起,对外部隐藏对象的具体实现细节。通过访问修饰符来实现封装。 示例代码: java public class Student { // 私有属性 private String name; private int age; …...
【Pandas】pandas DataFrame truediv
Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...
GTS-400 系列运动控制器板(六)----修改编码器计数方向
运动控制器函数库的使用 运动控制器驱动程序、 dll 文件、例程、 Demo 等相关文件请通过固高科技官网下载,网 址为: www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提…...
卷积神经网络迁移学习:原理与实践指南
引言 在深度学习领域,卷积神经网络(CNN)已经在计算机视觉任务中取得了巨大成功。然而,从头开始训练一个高性能的CNN模型需要大量标注数据和计算资源。迁移学习(Transfer Learning)技术为我们提供了一种高效解决方案,它能够将预训练模型的知识…...
Django 入门实战:从环境搭建到构建你的第一个 Web 应用
Django 入门实战:从环境搭建到构建你的第一个 Web 应用 恭喜你选择 Django 作为你学习 Python Web 开发的起点!Django 是一个强大、成熟且功能齐全的框架,非常适合构建中大型的 Web 应用程序。本篇将通过一个简单的例子,带你走完…...
【后端】构建简洁的音频转写系统:基于火山引擎ASR实现
在当今数字化时代,语音识别技术已经成为许多应用不可或缺的一部分。无论是会议记录、语音助手还是内容字幕,将语音转化为文本的能力对提升用户体验和工作效率至关重要。本文将介绍如何构建一个简洁的音频转写系统,专注于文件上传、云存储以及…...
http通信之axios vs fecth该如何选择?
在HTTP通信中,axios和fetch都是常用的库或原生API用于发起网络请求。两者各有特点,适用于不同的场景。下面详细介绍它们的差异和各自的优势: fetch 特点: 原生支持:fetch是现代浏览器内置的API,不需要额外…...
iostat指令介绍
文章目录 1. 功能介绍2. 语法介绍3. 应用场景4. 示例分析 1. 功能介绍 iostat (input/output statistics),是 Linux/Unix 系统中用于监控 CPU 使用率和 磁盘 I/O 性能的核心工具,可实时展示设备负载、吞吐量、队列状态等关键指标。 可以使用 man iostat查…...
NLP高频面试题(五十)——大模型(LLMs)分词(Tokenizer)详解
在自然语言处理(NLP)任务中,将文本转换为模型可处理的数字序列是必不可少的一步。这一步通常称为分词(tokenization),即把原始文本拆分成一个个词元(token)。对于**大型语言模型(LLM,Large Language Model,大型语言模型)**而言,选择合适的分词方案至关重要:分词的…...
桌面我的电脑图标不见了怎么恢复 恢复方法指南
在Windows操作系统中,“我的电脑”或在较新版本中称为“此电脑”的图标,是访问硬盘驱动器、外部存储设备和系统文件的重要入口。然而,有些用户可能会发现桌面上缺少了这个图标,这可能是由于误操作、系统设置更改或是不小心删除造成…...
【Qt】控件的理解 和 基础控件 QWidget 属性详解(通俗易懂+附源码+思维导图框架)
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 通过上一章对信号槽的理解相信你对Qt的认识肯定有了很大的进步,下面将通过本篇文章带你深入的认识Widget控件(主窗口࿰…...
oracle将表字段逗号分隔的值进行拆分,并替换值
需求背景:需要源数据变动,需要对历史表已存的字段值根据源数据进行更新。如果是单字段存值,直接根据映射表关联修改即可。但字段里面若存的值是以逗号分割,比如旧值:‘old1,old2,old3’,要根据映射关系调整…...
用c语言实现——一个带头节点的链队列,支持用户输入交互界面、初始化、入队、出队、查找、判空判满、显示队列、遍历计算长度等功能
一、知识介绍 带头节点的链队列是一种基于链表实现的队列结构,它在链表的头部添加了一个特殊的节点,称为头节点。头节点不存储实际的数据元素,主要作用是作为链表的起点,简化队列的操作和边界条件处理。 1.节点结构 链队列的每…...
webpack基础使用了解(入口、出口、插件、加载器、优化、别名、打包模式、环境变量、代码分割等)
目录 1、webpack简介2、简单示例3、入口(entry)和输出(output)4、自动生成html文件5、打包css代码6、优化(单独提取css代码)7、优化(压缩过程)8、打包less代码9、打包图片10、搭建开发环境(webpack-dev-server…...
【项目】基于MCP+Tabelstore架构实现知识库答疑系统
基于MCPTabelstore架构实现知识库答疑系统 整体流程设计(一)Agent 架构(二)知识库存储(1)向量数据库Tablestore(2)MCP Server (三)知识库构建(1&a…...
C语言高频面试题——malloc 和 calloc区别
在 C 语言中,malloc 和 calloc 都是用于动态内存分配的函数,但它们在 内存初始化、参数形式 和 使用场景 上有显著区别。以下是详细的对比分析: 1. 函数原型 malloc void* malloc(size_t size);功能:分配 未初始化 的连续内存块…...
深入探讨JavaScript性能瓶颈与优化实战指南
JavaScript作为现代Web开发的核心语言,其性能直接影响用户体验与业务指标。随着2025年前端应用的复杂性持续增加,性能优化已成为开发者必须掌握的核心技能。本文将从性能瓶颈分析、优化策略、工具使用三个维度,结合实战案例,系统梳理JavaScript性能优化的关键路径。 一、Ja…...
[创业之路-376]:企业法务 - 创业,不同的企业形态,个人承担的风险、收益、税费、成本不同
在企业法务领域,创业时选择不同的企业形态,个人在风险承担、收益分配、税费负担及运营成本方面存在显著差异。以下从个人独资企业、合伙企业、有限责任公司、股份有限公司四种常见形态展开分析: 一、个人承担的风险 个人独资企业 风险类型&…...
【Lua】Lua 入门知识点总结
Lua 入门学习笔记 本教程旨在帮助有编程基础的学习者快速入门Lua编程语言。包括Lua中变量的声明与使用,包括全局变量和局部变量的区别,以及nil类型的概念、数值型、字符串和函数的基本操作,包括16进制表示、科学计数法、字符串连接、函数声明…...
低空经济 WebGIS 无人机配送 | 图扑数字孪生
2024 年,”低空经济” 首次写入政府工作报告,在政策驱动下各地纷纷把握政策机遇,从基建网络、场景创新、产业生态、政策激励等方面,构建 “规划-建设-应用-赋能” 的系统性布局,作为新质生产力的重要体现,推…...
【程序员 NLP 入门】词嵌入 - 如何基于计数的方法表示文本? (★小白必会版★)
🌟 嗨,你好,我是 青松 ! 🌈 希望用我的经验,让“程序猿”的AI学习之路走的更容易些,若我的经验能为你前行的道路增添一丝轻松,我将倍感荣幸!共勉~ 【程序员 NLP 入门】词…...
基于机器学习的多光谱遥感图像分类方法研究与定量评估
多光谱遥感技术通过获取可见光至红外波段的光谱信息,为地质勘探、农业监测、环境调查等领域提供了重要支持。与普通数码相机相比,多光谱成像能记录更丰富的波段数据(如近红外、短波红外等),从而更精准地识别地物特征。…...
BEVDepth: Acquisition of Reliable Depth for Multi-View 3D Object Detection
背景 基于多视角图片的3D感知被LSS证明是可行的,它使用估计的深度将图像特征转化为3D视椎,再将其压缩到BEV平面上。对于这个得到的BEV特征图,它支持端到端训练以及各种下游任务。但是对于深度估计这一块学习的深度质量如何,到目前为止没有相关工作研究。 贡献 本文的贡献…...
【Linux】静态库 动态库
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、👑静态库和动态库 静态库: 动态库: 🌠手动制作静态库 && 手动调用一下我们自己写的静态库 1> 安装到系统里面 ✨生成静…...
Java转Go日记(六):TCP黏包
服务端代码如下: // socket_stick/server/main.gofunc process(conn net.Conn) {defer conn.Close()reader : bufio.NewReader(conn)var buf [1024]bytefor {n, err : reader.Read(buf[:])if err io.EOF {break}if err ! nil {fmt.Println("read from client…...
(51单片机)LCD显示温度(DS18B20教程)(LCD1602教程)(延时函数教程)(单总线教程)
演示视频: LCD显示温度 源代码 如上图将9个文放在Keli5 中即可,然后烧录在单片机中就行了 烧录软件用的是STC-ISP,不知道怎么安装的可以去看江科大的视频: 【51单片机入门教程-2020版 程序全程纯手打 从零开始入门】https://www.…...
【通过Docker快速部署Tomcat9.0】
文章目录 前言一、部署docker二、部署Tomcat2.1 创建存储卷2.2 运行tomcat容器2.3 查看tomcat容器2.4 查看端口是否监听2.5 防火墙开放端口 三、访问Tomcat 前言 Tomcat介绍 Tomcat 是由 Apache 软件基金会(Apache Software Foundation)开发的一个开源 …...
云原生--基础篇-3--云原生概述(云、原生、云计算、核心组成、核心特点)
1、什么是云和原生 (1)、什么是云? “云”指的是云计算环境,代表应用运行的基础设施和资源。依赖并充分利用云计算的弹性、分布式和资源池化能力。 核心含义: 1、云计算基础设施 云原生应用的设计和运行完全基于云…...
Spark-Streaming
Spark-Streaming概述 DStream实操 案例一:WordCount案例 需求:使用 netcat 工具向 9999 端口不断的发送数据,通过 SparkStreaming 读取端口数据并统计不同单词出现的次数 实验步骤: 添加依赖 <dependency> <gro…...
乐视系列玩机------乐视2 x620红灯 黑砖刷写教程以及新版刷写工具的详细释义
乐视x620在上期解析了普通黑砖情况下的救砖刷机过程。但在一些例外的情况下。使用上面的步骤会一直刷写报错 。此种情况就需要另外一种强制刷写方法来救砖 通过博文了解💝💝💝 1💝💝💝-----详细解析乐视2 x620系列 红灯 黑砖线刷救砖的步骤 2💝💝💝----图…...
若依SpringCloud项目-定制微服务模块
若依SpringCloud项目-定制微服务模块 关于微服务先不过多介绍,刚开始熟悉并不能讲的很彻底,成熟的微服务项目-若依SpringCloud就是一个典型的微服务架构工程(网上有很多教程了,不明白的可以学习一下)。 我正在看的视…...
【扫描件批量改名】批量识别扫描件PDF指定区域内容,用识别的内容修改PDF文件名,基于C++和腾讯OCR的实现方案,超详细
批量识别扫描件PDF指定区域内容并重命名文件方案 应用场景 本方案适用于以下场景: 企业档案数字化管理:批量处理扫描的合同、发票等文件,按内容自动分类命名财务票据处理:自动识别票据上的关键信息(如发票号码、日期)用于归档医疗记录管理:从扫描的检查报告中提取患者I…...
学习Docker遇到的问题
目录 1、拉取hello-world镜像报错 1. 检查网络连接 排查: 2. 配置 Docker 镜像加速器(推荐) 具体解决步骤: 1.在服务器上创建并修改配置文件,添加Docker镜像加速器地址: 2. 重启Docker 3. 拉取hello-world镜像 2、删除镜像出现异常 3、 容器内部不能运行ping命令 …...
Docker 数据卷
目录 一、数据卷(Data Volume) 二、使用 1、单独建立数据卷 2、挂载主机数据卷 3、数据卷容器挂载 基本语法: 工作原理: 主要用途: 使用事例: 一、数据卷(Data Volume) 数据卷的使用,类似于 Linux 下对目录或文件进行 mount 数据卷(Data Volume)是一个可供一个或多…...
【数据结构】励志大厂版·初级(二刷复习)双链表
前引:今天学习的双链表属于链表结构中最复杂的一种(带头双向循环链表),按照安排,我们会先进行复习,如何实现双链表,如基本的头插、头删、尾删、尾插,掌握每个细节,随后进…...
通过dogssl申请ssl免费证书
SSL证书作为实现HTTPS加密的核心工具,能够确保用户与网站之间的数据传输安全。尤其是在小程序之类的开发时,要求必须通过https发起请求的情况下。学会如何免费申请一个ssl证书就很有必要了。这里我分享一下,我通过dogssl如何申请ssl的。 一&…...
路由与路由器
路由的概念 路由是指在网络通讯中,从源设备到目标设备路径的选择过程。路由器是实现这一过程的关键设备,它通过转发数据包来实现网络的互联。路由工作在OSI参考模型的第三层,‘网络层’。 路由器的基本原理 路由器通过维护一张路由表来决定…...
Docker底层原理浅析 | namespace+cgroups+文件系统
本文目录 1. Linux NamespaceLinux系统里是否只能有一个pid为1的进程?namespace机制查看namespacenamespace机制测试使用Docker验证namespace机制 2. Dcoerk网络模式3.Control groups4.文件系统(联合文件系统)5. 容器格式 1. Linux Namespace…...
【无人机】使用扩展卡尔曼滤波 (EKF) 算法来处理传感器测量,各传感器的参数设置,高度数据融合、不同传感器融合模式
目录 #1、IMU #2、磁力计 #3、高度 #典型配置 #4、气压计 #静压位置误差修正 #气压计偏置补偿 #5、全球导航系统/全球定位系统--GNSS/GPS #位置和速度测量 #偏航测量 #GPS 速度的偏航 #双接收器 #GNSS 性能要求 #6、测距 #条件范围辅助-Conditional range aidin…...
常见的raid有哪些,使用场景是什么?
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种将多个物理硬盘组合成一个逻辑硬盘的技术,目的是通过数据冗余和/或并行访问提高性能、容错能力和存储容量。不同的 RAID 级别有不同的实现方式和应用场景。以下…...
《 C++ 点滴漫谈: 三十四 》从重复到泛型,C++ 函数模板的诞生之路
一、引言 在 C 编程的世界里,类型是一切的基础。我们为 int 写一个求最大值的函数,为 double 写一个相似的函数,为 std::string 又写一个……看似合理的行为,逐渐堆积成了难以维护的 “函数墙”。这些函数逻辑几乎一致࿰…...
EasyRTC打造无人机低延迟高清实时通信监控全场景解决方案
一、方案背景 随着无人机技术的飞速发展,其在航拍、物流配送、农业监测、应急救援等多个领域的应用日益广泛。然而,无人机在实际作业过程中面临着诸多挑战,如通信延迟、数据传输不稳定、监控范围有限等。EasyRTC作为一种高效、低延迟的实时通…...
【MATLAB第117期】#源码分享 | 基于MATLAB的SSM状态空间模型多元时间序列预测方法(多输入单输出)
【MATLAB第117期】#源码分享 | 基于MATLAB的SSM状态空间模型多元时间序列预测方法(多输入单输出) 引言 本文使用状态空间模型实现失业率递归预测,状态空间模型(State Space Model, SSM)是一种用于描述动态系统行为的…...
关于大数据的基础知识(三)——数据安全与合规
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(三&a…...
从信息泄露到内网控制
0x01 背景 之前常见用rce、文件上传等漏洞获取webshell,偶然遇到一次敏感信息泄露获取权限的渗透,简单记录一下过程。 0x02 信息泄露 发现系统某端口部署了minio服务,经过探测发现存在minio存储桶遍历 使用利用工具把泄露的文件全部整理一…...