alert.js alert('hello ' + document.location.href); manifest.json { "manifest_version": 2,…
May 9, 2017
Chrome Extension: Chrome.storage 存储API简单使用 (缓存,cache)
有时候我们不满足于localStorage只能保存string的单调功能,那么试一试chrome.storage中存储多种类型的本领?
*.本文中的操作实例仅仅使用storage.local
,其他API都类似。
声明权限
{ "permissions": ["storage"] }
保存数据
// chrome.storage.local.set函数需要两个参数,一个为存储对象,一个为回调函数 chrome.storage.local.set({ string: '可以存储字符串', array: ['或者', '数组'], object: {k: '或者', v: '对象'}, int: 111 }, function(){ console.log('保存成功'); })
获取数据
// chrome.storage.local.get函数需要两个参数,第一个为要获取的键值,第二个是获取成功回调函数 chrome.storage.local.get('array', function(arr){ console.log(arr); }); // 还可以这样 chrome.storage.local.get(['object', 'string'], function(obj){ console.log(obj.object); console.log(obj.string); });
删除数据
chrome.storage.local.remove('string', function(){ console.log('删除成功'); }); // 或者 chrome.storage.local.remove(['int', 'array'], function(){ console.log('删除成功'); });
清空数据
chrome.storage.local.clear();
监听事件
由于不怎么使用,暂时不记。。
实例:
function fetchLive(callback) { doSomething(function(data) { chrome.storage.local.set({cache: data, cacheTime: Date.now()}, function() { callback(data); }); }); } function fetch(callback) { chrome.storage.local.get(['cache', 'cacheTime'], function(items) { if (items.cache && items.cacheTime && items.cacheTime) { if (items.cacheTime > Date.now() - 3600*1000) { return callback(items.cache); // Serialization is auto, so nested objects are no problem } } fetchLive(callback); }); }
本文: Chrome Extension: Chrome.storage 存储API简单使用 (缓存,cache)