不仅仅是 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 和大量本地数据的神器!