写点什么

谷歌在 Chrome 74 中试验内置模块 KV Storage

  • 2019-04-29
  • 本文字数:1126 字

    阅读完需:约 4 分钟

谷歌在Chrome 74中试验内置模块KV Storage

谷歌最近宣布,他们计划在 Chrome 的未来版本中交付两个新的WICG提案。KV Storage(键-值存储)试图提供 localStorage 的便利,但性能更好。其目的是利用导入映射提案将其作为内置模块的第一个示例交付。


JavaScript 生态系统在本地存储和缓存数据方面存在一些缺陷。正如谷歌 Web 平台软件工程师 Philip Walton 所解释的那样:


在过去十年的大部分时间里,浏览器厂商和 Web 性能专家一直在说,localStorage 很慢,Web 开发人员应该停止使用它。公平地说,说这话的人没错。LocalStorage 是一个同步 API,它会阻塞主线程,任何时候访问它都有可能阻止页面的交互。问题是,localStorage API 非常简单,而且 localStorage 的唯一异步替代方案是 IndexedDB,(面对现实吧)并不以其易用性或受欢迎的 API 而闻名。


Web Incubator CG (WICG)最近将 KV Storage 提升为 W3C IndexedDB 规范的一部分。KV Storage 类似于 localStorage,但更现代,并在 IndexedDB 之上。该规范要求浏览器厂商将其作为内置模块实现,并使用 IndexedDB 作为其后台存储。


以下是规范中提供的 KV Storage API 使用示例:


import { storage } from "std:kv-storage"; // specifier prefix not final
(async () => { await storage.set("mycat", "Tom"); console.assert(await storage.get("mycat") === "Tom");
for await (const [key, value] of storage.entries()) { console.log(key, value); } // Logs "mycat", "Tom"
await storage.delete("mycat"); console.assert(await storage.get("mycat") === undefined);})();
复制代码


对于支持 IndexedDB 的浏览器,有一个KV Storage polyfill


KV Storage 模块是按照JavaScript标准库提案及其导入映射支持中的定义实现的。


导入映射不是一个新概念,它是早期 JavaScript 模块系统的一部分,就像 AMD 和其他编程语言中的模块系统。它们是新近才包含在标准 ES 模块中的。这个导入映射提案提供了对 JavaScript import 语句和 import()表达式所获取的 URL 的控制,并允许在非导入上下文中重用映射。导入映射允许简化导入语句、回退模块解析、内置模块 polyfill 以及在 fetch、image 和 link 标记之间共享上下文等等。


这两个备受期待的新特性的成功实现,将显著改进将特性添加到 JavaScript 未来版本的过程,并提供更加方便的 Web API。导入映射和内置模块完善了可扩展Web宣言中缺失的部分。


现在,希望试验 KV Storage 的开发人员可以利用 polyfill,或者安装 Chrome Dev 或 Chrome 74 的 Canary 版本。在这些特性的主流版本发布之前,开发者可以注册KV Storage最初试用版,所有 Chrome 74+用户都可以使用这些特性。


查看英文原文Google Experiments With Key-Value Storage, Built-In Modules in Chrome 74


2019-04-29 08:005217
用户头像

发布了 807 篇内容, 共 555.0 次阅读, 收获喜欢 1588 次。

关注

评论

发布
暂无评论
发现更多内容

杭州悦数成立「悦数图技术陆家嘴数据智能研究院」,入驻上海陆家嘴金融城「双城辉映」平台

悦数图数据库

分布式图数据库 图数据

技术人必修课:利用金字塔原理高效思考与表达

阿里技术

思考 金字塔 技术人 表达 表达的逻辑

首批!天翼云大数据平台率先通过信通院无服务器架构大数据平台测试

天翼云开发者社区

云计算 大数据 架构 测试

学习贯彻“枫桥经验”,积极践行央企担当!

天翼云开发者社区

生态链 战略合作

Socket.D 基于消息的响应式应用层网络协议

不在线第一只蜗牛

网络协议 应用层 网络通讯

全面解读《State of PostgreSQL 2023》报告

酷克数据HashData

危机来临,防御性编程能否帮助程序员抵御裁员风暴?

飞算JavaAI开发助手

Tiktok怎样多开不封号?海外云手机就能解决!

Ogcloud

跨境电商 TikTok

你知道海外云手机可以用于外贸测评吗?

Ogcloud

跨境电商 外贸

五种简单保护网站安全的方法看这里!

行云管家

网络安全 网站 数据安全 网站安全

海外云手机一般用来做什么?

Ogcloud

跨境电商

观点提炼 | 美国CISA、ODN等发布《SBOM推荐实践指南》

网安云

开源软件供应链 SBOM 软件供应链安全 开源软件供应链安全 软件物料清单(SBOM)

除了增删改查,后端一定要学会这些!

伤感汤姆布利柏

后端 低代码

3分钟看懂如何给开源项目发起提案

伤感汤姆布利柏

Swagger 注解详述:如何编写更友好的API文档

Liam

后端 接口文档 API swagger 接口工具

年终收官!华为云开发者日·2023年度创享峰会成功举办

华为云开发者联盟

人工智能 软件开发 华为云 华为云开发者联盟 华为云CodeArts

DAPP双币质押收益系统开发丨源码搭建

l8l259l3365

斩获冠亚军!开源检索引擎Puck闪耀NeurIPS'2023

百度Geek说

搜索引擎 开源 企业号12月PK榜

软件测试/测试开发丨测试用例价值与体系

测试人

软件测试 测试开发

引领汽车营销新趋势,3DCAT实时云渲染助力汽车三维可视化

3DCAT实时渲染

实时渲染 实时渲染云 汽车三维可视化

SEO搜索引擎优化——被严重低估网络营销核心技能!

九凌网络

软件测试/测试开发丨Linux 进程与线程

测试人

Linux 软件测试 测试开发

测试开发 | 长短时记忆网络(LSTM):时序信息的记忆大师

测吧(北京)科技有限公司

测试

Java多线程系列8:JDK中的管程实现之条件变量

BigBang!

Java多线程

亿级大表毫秒关联,荔枝微课基于腾讯云数据仓库Doris的统一实时数仓建设实践

腾讯云大数据

Doris

对于企业软件系统而言,唯一重要的架构设计是什么

FN0

架构 软件系统

谷歌在Chrome 74中试验内置模块KV Storage_大前端_Dylan Schiemann_InfoQ精选文章