没有数据库的JavaScript应用程序的离线/本地存储的选项

这是我的情况:

我熟悉Javascript,希望创build一些简单的应用程序,以便在工作中使用,或者作为概念的certificate,然后再进一步采用它们,并获得实际的Web服务器空间。 我不想在我的机器上设置一个实际的数据库。 如果可能,我宁愿读/写本地JSON文件。 这是我有点卡住了,因为我的大多数查询已经在HTML 5 FileSystem API或Node.js(已经安装在我的机器上)之前发现了旧信息,或者现在可能存在的任何其他信息。

有没有人知道一个教程创build一个离线MVP与无数据库存储或类似的东西? 或者只是一般的build议,看什么开始?

我一直在阅读HTML 5 Filesystem API和Node.js FS的东西,但没有一个例子,我发现很难知道从哪里开始。

2014年4月24日 ,W3C正式将FileSystem API成熟为一个工作组,注意使用这种技术进行开发时应谨慎,不要确定它是否会持续多久。

IndexedDB正在成为一个有前景的替代/解决scheme,或许可以查看html5的岩石教程 。 在下面留下我的初步答案,因为它仍然有效,但是要留下关于File-System API的警告。


我看到你有一个答案,但我想给一个解决scheme的文件系统api(你也问)关于cookies你有一个大小的限制,但回答你的问题的另一面,以下是我使用的文章开始使用HTML5文件系统API

文件系统api中的其他一切都围绕获取文件的引用,然后创build作者,读者等。 特定于该文件实例。 当文件编写者,读者,引用已经完成加载时,callback函数被传递/执行。

请求存储配额/获得对FileSystem的引用

 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); 

写入JSON文件

 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); 

从文件中读取JSON /创buildfileReader(在callback函数中传递JSON对象)

 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); 

您可以通过将对象转换为string并存储为cookie或使用本地存储来自己写:

 var data = { 'example': 324324 }; document.cookie = JSON.stringify(data); var loaded = document.cookie.split(';'); console.log(JSON.parse(loaded [0])); 

或者可以使用一个图书馆,它会为你做的!

http://brian.io/lawnchair/