HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

发布了 733 篇内容, 共 467.6 次阅读, 收获喜欢 1544 次。

关注

评论

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

构筑高质量的数据中心基础设施,华为助力创造互联网全新体验

科技热闻

《面试补习》- Java集合知识梳理

九灵

Java 面试 集合

vue keep-alive(1):vue router如何保证页面回退页面不刷新?

zhoulujun

Vue vue-router keep-alive 页面缓存

vue keep-alive(2):剖析keep-alive的实现原理—学习笔记整理

zhoulujun

Vue vue源码解读 keep-alive实现原理

【LeetCode】传递信息Java题解

Albert

算法 LeetCode 7月日更

提升中台化体系产研效能的ParisFlow方法与实践

downgoon

Java的多线程和高并发详解

北游学Java

Java 多线程

我们常说的算法时间复杂度和空间复杂度到底是什么?

编程三昧

编程 算法复杂度

中层管理者的工作五步法

石云升

读书笔记 职场经验 管理经验 6月日更

如何实施 SCRUM ?

万事ONES

项目管理 Scrum 敏捷开发 看板 ONES

漏洞都有哪些分类

网络安全学海

网络安全 信息安全 渗透测试 漏洞 漏洞分析

2021,云原生避坑经验分享|CIC 阵容官宣

青云技术社区

容器 云原生

智能运维(AIOps)系列之一:个人对智能运维的理解

micklongen

AIOPS 智能运维

推荐系统之数据与特征工程(二十三)

Databri_AI

数据 推荐系统 技术特征

在线图片转base64工具

入门小站

工具

【Flutter 专题】129 图解 ToggleButtons 按钮切换容器组

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

网络攻防学习笔记 Day60

穿过生命散发芬芳

网络攻防 6月日更

开源商业化:满足各方底层需求

茶陵後

开源 开源社区 开源文化

革故鼎新:企业数字化转型繁荣互联网生态建设,驱动ICT设施升级

科技热闻

双碳打开新机遇 华为互联网数据中心基础设施筑起“绿色基石”

科技热闻

5分钟速读之Rust权威指南(三十三)Send&Sync

wzx

rust

【源码系列】Spring 过滤器和拦截器

Alex🐒

spring 源码 Spring Framework

卢卡开专栏了

卢卡多多

数据库 MySQL 高可用 6月日更

聊聊知乎订单系统迁移

知一

监控 软件开发 系统架构 重构 订单系统

华为云原生媒体网络,升级传统,赋能未来

华为云开发者联盟

云原生 直播 TechWave 媒体网络 云视频

如何做好IT项目管理?

万事ONES

IT 项目经理 项目管理工具

智能技术与生物技术共同绘就生命“藏宝图”,对你我意味着什么?

脑极体

SQL 居然还能在 Apache ShardingSphere 上实现这些功能?

SphereEx

Linux之head命令

入门小站

Linux

Rust从0到1-函数式编程-性能比较

rust 函数式编程 Performance 性能比较

Camtasia实用技巧之视频剪辑

淋雨

视频剪辑 Camtasia 录屏软件

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