我打算在我的webapp中实现“Recenty Opened Files”功能,我正在尝试决定使用哪种HTML5技术。这里最重要的是一个事实,我不能只是将文件路径保存到文件然后重新打开它。出于安全原因,必须通过用户操作(从输入中选择文件或拖放文件)来启动读取文件。所以唯一的选择是将整个文件保存在缓存中。以下是我的选择:
:一种。 localStorage的
像这样存储JSON对象:
{
"recent": [
{}, {},..., {}
]
}
其中每个{}
是一个JSON文件描述符,如下所示:
{
"filename": "blah",
"type" : "txt",
"chunks": ['"3bce4931-6c75-41ab-afe0-2ec108a30860"',...]
}
其中每个块是localstorage中的密钥,用于lzw编码的数据块。每个块都是来自blobfile的数据,在读取文件时获得。
我知道,localstorage只能存储字符串,而不能存储JSON,但它很容易序列化。 这个apprach的问题是本地存储和同步API的大小有限,这会在从文件中读取大量数据时降低整个应用程序的速度。
B中。索引资料
我刚刚开始阅读有关此HTML5功能的内容,但显然它具有异步API并且能够存储整个fileBlob对象。我不知道尺寸限制。不幸的是,浏览器支持非常有限,API看起来很糟糕。
问题是:
我无法使用任何一种技术找到任何Rcenty Opened Files的实现。你有没有?任何建议,已知的问题?
答案 0 :(得分:0)
我认为您的JSON / LocalStorage方法是一个很好的解决方案。 您可以使用它作为临时JS对象轻松处理数据,并在每次修改时覆盖localstorage条目(我对我的移动应用程序使用了很多)。
您还可以查看JS MVC框架以优化您的工作 http://backbonejs.org/docs/backbone-localstorage.html
提示:不要使用webSQL(lite)DB,因为W3C不再支持它了。