以下是我的情景:
我熟悉Javascript,并希望创建一些简单的应用程序,无论是在个人工作中使用还是作为概念的证明,然后再进一步使用并获得实际的Web服务器空间。但是,我不想在我的机器上设置实际的数据库。如果可能,我希望读/写本地JSON文件。这是我有点卡住的地方,因为我的大多数查询都在html 5 FileSystem API或Node.js(已经安装在我的机器上)或现在可能存在的任何其他内容之前显示旧信息。
是否有人知道创建具有无数据库存储或类似内容的离线MVP的教程?或者只是关于如何开始的一般建议?
我一直在阅读HTML 5 Filesystem API和Node.js FS的东西但是没有一个例子我发现很难知道从哪里开始。
答案 0 :(得分:4)
在 2014年4月24日上,W3C正式将FileSystem API成熟为 Working Group Note ,使用此技术的开发应该谨慎进行,不确定是否或者它会坚持多久。
IndexedDB正在寻找一个有前途的替代/解决方案,或许可以查看html5 rocks tutorial。留下我的初步答案,因为它仍然有效,但想对文件系统API保持谨慎。
<小时/> 我看到你得到了答案,但我想给文件系统api(你也问过)的解决方案。对于你有一个大小限制的cookie,但是为了回答问题的另一面,以下是{{3 }
文件系统api中的其他所有内容都围绕获取对文件的引用,然后创建编写器,读者等。特定于该文件实例。当文件编写者,读者,引用完成加载时,将传递/执行回调函数。
var onInitFs = function(fs){
fileSystem = fs;//set global reference to the filesystem
};
var errorHandler = function(e){console.log('Error', e);};
navigator.webkitPersistentStorage.requestQuota(1024*1024*1024*5, function(grantedBytes) {
window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler);
}, errorHandler);
fileSystem.root.getFile("filepathtoJSON", {
create: true
}, callback, errorHandler);
fileSystem.root.getFile("filepathtoJSON", {create: true}, function(fileEntry) {
fileEntry.createWriter(function(writer) {
writer.onwriteend = function(e) {
writer.onwriteend = function(e){
callbackFunction();
}
writer.onerror = function(e3){console.log(e3);}
var blob = new Blob([JSON.stringify(targetJSONobj)]);
writer.write(blob);
};
writer.onerror = function(e3) {console.log(e3);};
writer.truncate(0);
}, errorHandler);
}, errorHandler);
fileSystem.root.getFile("filepathtoJSON", {creation:false}, function(fileEntry){
fileEntry.file(function(file){
var reader = new FileReader();
reader.onloadend = function(e) {
callback(JSON.parse(this.result));
};
reader.readAsText(file);
}, errorHandler)
}, errorHandler);
答案 1 :(得分:1)
您可以通过将对象转换为字符串并将其存储为cookie或使用本地存储来自行编写:
var data = { 'example': 324324 };
document.cookie = JSON.stringify(data);
var loaded = document.cookie.split(';');
console.log(JSON.parse(loaded [0]));
或者使用可以为您完成的库!