7

当没有要维护的数据库和用户进行身份验证时,这很好。我的教授要求我转换他最近的一个研究项目,该项目使用Bespin并计算用户在代码编辑器中犯的错误,作为他研究的一部分。

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

问题:
我需要存储文件和状态(光标和活动文件的最后放置位置)。我已经通过在另一个 stackoverflow 线程中实施建议来做到这一点。但希望您的意见考虑如何构建要使用的内容。

我当前的解决方案 > 带有 javascript 对象的类似 Hashmap 的解决方案:

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

然后使用一些建议存储在 localStorage

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

目前我也在考虑使用某种类型的数字 id。这样就可以更改名称,而无需重命名哈希图中的键。你对它的解决方式有什么看法,你会采取不同的做法吗?

4

1 回答 1

9

目前,在做了一些阅读和研究后,我决定最好的方法是使用对象文字将所有内容存储在对象中:

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

然后使用存储它们JSON.stringify()

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

这是一种很好的做法,因为它存储了大量易于存储和访问的信息。它还可以防止混淆何时使用添加键值对信息的简单方法localStorage以及何时使用该localStorage.setItem(key, value)函数

于 2010-05-14T05:57:02.917 回答