1
我嘗試使用HTML5文件系統, 這樣我就可以存儲在客戶端的數據,HTML5文件系統初始化
我的第一次試驗是成功的,因爲我在一開始使用JavaScript, 啓動一切簡單的項目,在onclick或onkeypress事件中操作文件(讀取文件並將其附加到textarea或P;並編寫/修改文件),但是,當我在事件外部同時執行操作時,文件系統爲空/未定義,我無法繼續該過程,
這裏是工作正常的代碼:
function initFS() {
window.webkitStorageInfo.requestQuota(PERSISTENT,5*1024*1024,
function(grantedBytes) {
window.requestFileSystem(window.TEMPORARY, grantedBytes, function (filesystem)
{
fs = filesystem;
}, errorHandler);
});
}
document.body.onclick=function()
{
alert(fs);
fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {
}, errorHandler);
}
警報(FS)導致DOM文件系統,這意味着,FS變量是文件系統。
但是,當我這樣做:
function initFS()
{
window.webkitStorageInfo.requestQuota(PERSISTENT,5*1024*1024,function(grantedBytes){
window.requestFileSystem(window.TEMPORARY, grantedBytes, function(filesystem) {
fs = filesystem;
}, errorHandler);
})
}
if (window.requestFileSystem) {
initFS();
}
alert(fs);
警報(FS)返回null, 有沒有可以做這個的任何解決方案?任何的解釋是有用的這一點, 我不得已將添加一個按鈕,使後點擊FS肯定會是一個文件系統,但我會盡量避免這種方法
這是有意義的,爲什麼fs是空,是有辦法同步做到這一點?因爲把我所有的代碼放在回調裏面並不是我想要做的事 –
我不知道它的同步功能。你可以看看'promises' - 你必須得到一個外部庫。或者你可以做一些醜陋的事情,比如'If fs == null然後再次嘗試10ms'(僞代碼) – paulslater19
或者甚至在你知道它被執行之前就不啓動你的代碼(例如等待1s) – paulslater19