写点什么

谷歌在 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:005272
用户头像

发布了 876 篇内容, 共 615.5 次阅读, 收获喜欢 1616 次。

关注

评论

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

通过 YashanDB 实现数据共享与协作

数据库砖家

如何通过YashanDB数据库实现数据资产价值最大化

数据库砖家

如何通过YashanDB提高团队工作效率

数据库砖家

如何一个接口对接各大厂商的所有TTS(文本转语音)服务

程序猿DD

API TTS 文本转语音

Linux发行版切换技术全解析

qife122

Linux 虚拟化

如何通过YashanDB数据库提升行业数据竞争力

数据库砖家

如何通过YashanDB数据库提升业务连续性保障能力

数据库砖家

Oracle云基础设施强势崛起:AI驱动的新一代云计算竞争格局

qife122

oracle 云计算

AWS Direct Connect在菲律宾马卡蒂市推出100G扩展服务

qife122

AWS 网络连接

综合安防 维护经验总结(7)

万里无云万里天

工业 工厂运维 综合安防

在AI技术快速实现创意的时代,挖掘游戏开发框架新需求成为关键

qife122

游戏开发 开源框架

工业设计 自控设计经验总结(7)

万里无云万里天

设计师 工业 工厂运维

HTB Eureka靶机渗透实战 - Spring Boot堆转储与Bash算术注入漏洞利用

qife122

spring-boot 命令注入

如何通过YashanDB数据库实现数据合规性

数据库砖家

如何通过YashanDB数据库推动企业创新

数据库砖家

大数据-116 - Flink Sink 使用指南:类型、容错语义与应用场景 多种输出方式与落地实践

武子康

Java 大数据 flink spark 分布式

《独立开发者精选工具》第 019 期

Immerse

如何通过YashanDB数据库提升数据管理效率

数据库砖家

如何通过YashanDB提高数据的安全性

数据库砖家

遇见 Kiro:从“爽感写代码”到“生产级落地”

掘金安东尼

Perplexity发布搜索API,驱动下一代AI应用开发

qife122

AI AIAPI

如何通过YashanDB数据库提升企业数据资产价值

数据库砖家

如何通过YashanDB数据库优化客户体验

数据库砖家

Valley靶机渗透实战:从凭证复用到Python库劫持

qife122

渗透测试 权限提升

如何通过YashanDB实现高效的数据管理

数据库砖家

如何通过YashanDB数据库优化数据分析流程

数据库砖家

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名计算机控制AI框架需求洞察

qife122

AI需求分析 用户反馈挖掘

全面解析DoS攻击防护与应对策略

qife122

网络安全 漏洞防护

网络安全工具与社区讨论月报

qife122

网络安全 社区讨论

量子计算机开发学习计划

执于业务

量子

NoSuchMethodException

刘大猫

人工智能 云计算 算法 物联网 大模型

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