我正在开始一个项目,我需要编写一个 Chrome 扩展程序,它必须能够离线运行并再次在线同步。所以我想知道Chrome扩展程序是否有任何方法可以下载文件并在本地保存而不提示用户输入每个文件(文件数量可能相当大)
我见过 chrome.storage 模块,它能够做类似的事情,但我担心性能,如果有很多文件。所以如果你有一些关于性能的信息,我也很感兴趣。
编辑:我测试了 Chrome 的文件系统功能,这是我的来源:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
function onError(e) {
console.log('Error', e);
}
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://upload.wikimedia.org/wikipedia/fr/2/26/10_francs_Mathieu_1987_F365-28_revers.jpg', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
window.requestFileSystem(PERSISTENT, 1024 * 1024, function(fs) {alert(fs.root.name);}, onError);
window.requestFileSystem(PERSISTENT, 1024 * 1024, function(fs) {
fs.root.getFile('image.jpg', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.onwrite = function(e) {};
writer.onerror = function(e) {};
var blob = new Blob([xhr.response], {type: 'image/jpeg'});
writer.write(blob);
}, onError);
}, onError);
}, onError);
};
xhr.send();
它似乎有效,但我在任何地方都看不到我的文件。我为保存路径尝试了其他一些方法,例如给出绝对路径,但没有成功。任何想法?