繁体   English   中英

使用HTML5功能实现“最近打开的文件”功能

[英]Implementing 'Recenty Opened Files' functionality using HTML5 features

我打算在我的web应用程序中实现“最近打开的文件”功能,并且试图确定要使用哪种HTML5技术。 这里最重要的事实是,我不能只是将文件路径保存到文件中然后重新打开它。 出于安全原因,必须通过用户操作(从输入中选择文件或将其拖放)来启动读取文件。 因此,唯一的选择是将整个文件保存在缓存中。 这是我的选择:

A.本地存储

  1. 像这样存储JSON对象:

     { "recent": [ {}, {},..., {} ] } 

    其中每个{}是一个JSON文件描述符,如下所示:

     { "filename": "blah", "type" : "txt", "chunks": ['"3bce4931-6c75-41ab-afe0-2ec108a30860"',...] } 

    其中每个块都是lzw编码数据块本地存储中的键。 每个块都是来自blobfile的数据,是在读取文件时获得的。

    我知道 ,localstorage只能存储字符串,而不能存储JSON,但是很容易序列化。 这种方法的问题是本地存储和同步API的大小有限,这可能会减慢整个应用程序的速度,同时从文件中读取大量数据。

B.索引数据库

我刚刚开始阅读有关HTML5功能的信息,但是显然它具有异步API,并且能够存储整个fileBlob对象。 我不知道尺寸限制。 不幸的是,浏览器支持非常有限,API似乎很糟糕。

问题是:

我找不到使用任何一种技术的“ Rcenty打开文件”的任何实现。 你有? 有什么建议,已知的陷阱吗?

我认为您的JSON / LocalStorage方法是一个很好的解决方案。 您可以轻松地使用它作为临时JS对象并在每次修改时覆盖localstorage条目来处理数据(我在移动应用程序中经常使用它)。

您还可以查看JS MVC框架以优化工作http://backbonejs.org/docs/backbone-localstorage.html

提示:不要使用webSQL(精简版)数据库,因为W3C不再支持它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM