2010-05-10 115 views
6

当没有要维护的数据库和用户进行身份验证时,这很好。我的教授要求我将他最近使用Bespin的研究项目进行转换,并计算用户在代码编辑器中作出的错误,作为他研究的一部分。适用于在localStorage(HTML5)中保存文件的数据结构?

目标是完全从MySQL转换为使用HTML5 localStorage。尽管挖掘他的代码可能需要一些时间,但看起来并不难。

问题:
我需要存储文件和状态(光标和活动文件的上次放置)。我已通过执行another stackoverflow thread中的建议来完成此操作。但是希望您的输入考虑如何构建要使用的内容。

我目前的解决办法>的Hashmap喜欢用JavaScript对象解决方案:

files = {}; 
// later, saving 
files[fileName] = data; 

然后在localStorage的使用一些recommendations

localStorage.setObject("files", files); 
// Note that setObject(key, data) does not exist but is added 
// using Storage.prototype.setObject = function() {... 

目前我还使用某种类型的数字ID的考虑存储。因此,名称可以在没有任何麻烦的情况下重命名哈希映射中的密钥。你对这个问题的解决方式有什么看法?你会以不同的方式做到吗?使用JSON.stringify()

var files = {}; 
// Add loads of data 

然后将它们存储:

回答

8

目前我已经在做一些阅读和研究,以最好的方式是将一切存储在对象使用对象的文字后决定

localStorage.setItem('myFiles', JSON.stringify(files)); 

这是一个很好的做法,因为它存储了大量易于存储和访问的信息。此外,它从越来越混乱时使用localStorage添加键值对的信息,当简单的方式来使用localStorage.setItem(key, value)功能

+1

JSON是这里的答案... – gnarf 2011-01-04 20:58:55

+0

显然你可以把它当作一个对象防止: 'localStorage ['myFiles'] = JSON.stringify(files)'或'localStorage.myFiles = JSON.stringify(files)' – 2012-03-29 09:06:12

相关问题