写点什么

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

发布了 781 篇内容, 共 537.0 次阅读, 收获喜欢 1578 次。

关注

评论

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

使用Spring Boot创建docker image

程序那些事

Docker spring Spring Boot Spring Boot 2

算法图解:如何找出栈中的最小值?

王磊

Java 数据结构 算法

阿里P8架构师得意弟子,应聘华为Java岗居然一面就失败了?

Java架构师迁哥

Go语言小规范

小高

一个草根的日常杂碎(10月13日)

刘新吾

随笔杂谈 生活记录 社会百态

中年架构师,悲催的一天,全靠忍!

四猿外

Java 程序员 程序人生 架构师

重磅推荐!阿里巴巴技术专家认证的Java系统性能圣经,太香了

996小迁

Java 架构 面试 Java系统性能

2020亚马逊全球Prime会员日为会员节省金额超过14亿美金

爱极客侠

华为卢毅权:品质专线2.0 打造无处不在的品质联接

华为发布“品质专线2.0&智能分布式接入”解决方案

塞上江南之旅

谋生亦谋爱

美食 旅行

个人精简xml,实现mybatis存取blob类型数据(Mysql)

小Q

Java MySQL 学习 面试 mybatis

一个你不得不重视的趋势,而且数据会让你很诧异

非著名程序员

个人成长 短视频 自媒体

亿级数据库毫秒级查询?看完这一篇,海量数据赋能你也行

京东科技开发者

MySQL 数据库

一个草根的日常杂碎(10月14日)

刘新吾

随笔杂谈 生活记录 社会百态

金秋十月游记

Xuhehui

美食 旅行

十一、给小白看的最后一篇Python基础教程

刘润森

Python

一个草根的日常杂碎(10月12日)

刘新吾

随笔杂谈 生活记录 社会百态

MySQL-技术专题-MySQL MVCC实现机制

码界西柚

Presto在滴滴的探索与实践

滴滴技术

开源 滴滴技术 滴滴开源 presto

上线GitHub七天后就标星87.6K的Java大牛成长宝典,啃完之后成功面进字节!

Java架构追梦

Java 学习 架构 面试 核心知识点

LeetCode题解:590. N叉树的后序遍历,栈,JavaScript,详细注释

Lee Chen

大前端 LeetCode

十二、深入Python列表和元组

刘润森

Python

numexpr:你以为numpy已经够快了,其实它还可以更快

计算机与AI

Python 学习 数据分析 Numpy

华为:“智能分布式接入网”打造真千兆高品质生活体验

甲方日常 31

句子

工作 随笔杂谈 日常

MySQL-技术专题-MySQL中的锁机制

码界西柚

LeetCode题解:589. N叉树的前序遍历,栈,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Java-技术专题-纤程库Quasar

码界西柚

LAXCUS大数据集群操作系统:一个分布式分时共享E级系统软件(二)

陈泽云

人工智能 大数据 基础设施 国产操作系统

MySQL-技术专题-主从复制原理

码界西柚

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