使用 IndexedDB 快取大量資料
起因是撰寫的油猴腳本使用 localStorage 存資料,到某一天發現資料怎麼存不進去了,排查才發現資料超過 5MB 了,然後就開始找有沒有其他更好的存資料方式,最後發現了瀏覽器資料庫 API——IndexedDB。 什麼是 IndexedDB?IndexedDB 是一個低階的 API,用於在瀏覽器中儲存大量結構化資料。它讓你可以在使用者端存放遠超 localStorage 的資料量(實際上限依磁碟配額決定),而且所有操作都是非同步的,不會卡住主執行緒。與 localStorage 不同,IndexedDB 可以處理更複雜的資料結構,也支援索引搜尋。 為什麼要用 IndexedDB? 儲存大量資料:相較於 localStorage 的 5MB 限制,IndexedDB 的上限由磁碟配額決定,通常是可用空間的數十趴,幾乎不會遇到瓶頸。 支援複雜資料結構:可以直接儲存和查詢 JavaScript 物件,不需要手動 JSON 序列化。 非同步操作:不會阻塞主執行緒,頁面不會因為資料操作而卡頓。 支援交易(Transactions):確保一批操作全部成功或全部回滾,不會出現資料寫到一半...




