V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dive into HTML5
http://diveintohtml5.org/
qq529633582
V2EX  ›  HTML

想在浏览器里头存需要随机存取的大文件,咋存好呢?

  •  
  •   qq529633582 · 2014-07-12 11:44:40 +08:00 · 4057 次点击
    这是一个创建于 3806 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是个chrome only的场景,因此可以使用Filesystem API。
    由于是extension或app,有足够的权限。
    “大文件”大小可能为数百兆字节,而且数量上可能有许多。

    我需要随机存取,而往fileSystem写可以seek,读取不能的seek,那么可以:
    0. 分成小段存储
    1. 顺序读取然后丢掉前面的部分
    2. 支持随机存取的其他方法(如果存在的话)
    3. 法律规定的其他方法

    存储方式可以是:
    0. fileSystem
    1. localStorage
    2. indexDB
    3. webSQL
    4. 法律规定的其他方式

    咋存好呢?如果分成大量的小段,会有性能问题不?
    10 条回复    2014-07-13 10:09:39 +08:00
    jsonline
        1
    jsonline  
       2014-07-12 11:58:01 +08:00
    你是要随机读取文件里面的内容,还是随机挑选文件路径啊?
    qq529633582
        2
    qq529633582  
    OP
       2014-07-12 12:05:00 +08:00
    @jsonline 随机读取内容
    loading
        3
    loading  
       2014-07-12 12:51:06 +08:00 via Android
    如果场景合适,可以考虑 node-webkit
    sneezry
        4
    sneezry  
       2014-07-12 16:16:02 +08:00 via iPhone
    FileSystem可以移动指针位置
    qq529633582
        5
    qq529633582  
    OP
       2014-07-12 17:18:32 +08:00
    @sneezry 咦,该怎么做呢?求相关文档
    sneezry
        6
    sneezry  
       2014-07-12 20:47:25 +08:00 via iPhone
    qq529633582
        7
    qq529633582  
    OP
       2014-07-12 20:48:57 +08:00
    @sneezry 我说了呀,fileWriter可以seek,fileReader不行
    sneezry
        8
    sneezry  
       2014-07-12 22:12:43 +08:00
    @qq529633582 哦哦,那读取成ArrayBuffer呢,ArrayBuffer可以操作位置
    qq529633582
        9
    qq529633582  
    OP
       2014-07-13 08:17:34 +08:00
    @sneezry 这是一个大大大大大大大文件~
    目前想到的办法是用Blob的slice,不知道会不会有效率问题
    sneezry
        10
    sneezry  
       2014-07-13 10:09:39 +08:00 via iPhone
    @qq529633582 哈,试试吧,毕竟FileSystem是Chrome OS里唯一的文件操作方法,我想Google会想到处理好大文件的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   873 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.