第36话

超级仓库

HTML5 IndexedDB
不仅仅是 Cookie
🍪
以前你们只能存 4KB 的数据在 Cookie 里,还每次请求都发给服务器,累死我了!
🏢
让开!我是 IndexedDB。我是浏览器里的 NoSQL 数据库。我可以存几百兆,甚至几G的数据!而且支持索引、事务、异步操作。
开仓放粮

使用 IndexedDB 需要写很多异步回调(或者使用 Promise 包装库)。这是原生写法:

var request = window.indexedDB.open("MyDatabase", 1); request.onupgradeneeded = function(event) { var db = event.target.result; // 创建一个叫 "customers" 的仓库,主键是 "ssn" var objectStore = db.createObjectStore("customers", { keyPath: "ssn" }); }; request.onsuccess = function(event) { var db = request.result; console.log("仓库大门打开了!"); };
🤖
虽然代码有点啰嗦,但它是处理离线应用、PWA 和大量本地数据的神器!