首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  浏览器

在浏览器里面大多用什么方式做存储

  •  
  •   jiafaner · 220 天前 · 1420 次点击
    这是一个创建于 220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    过去从没在浏览器里写过存很多数据的事情,都是用 ajax 传到服务器里,在 localstorage 只存几个标志位

    现在公司项目里有一个需求,就是在浏览器本地存储一些标题,时间,作者昵称之类的,有点 sns 风格的产品,这样就能够避免过多的 ajax 请求了,毕竟感觉 80%的数据都是不变的

    百度了点资料,说浏览器的存储能力有限,localstorage 只能存 2M 的东西,我试了一下,好像我们的产品最多的情况下需要大约 15MB 到 40MB 的 json 才能存下所有不怎么变化的数据

    除了 localstorage 还有没有更好的方法做这种浏览器端的存储?

    补充一下需求,客户要求浏览器要支持 Chrome,Firefox,edge, Android, iOS, 360,猎豹

    17 回复  |  直到 2018-10-18 15:23:56 +08:00
        1
    yingfengi   220 天前 via Android
    有点奇葩的需求。。。
        2
    1iuh   220 天前   ♥ 1
    把这些数据放一个 js 文件里面,正常引用就好,服务器这边设置好返回的 Header 即可, 静态文件浏览器自己会缓存。
        3
    fyibmsd   220 天前
    一本红楼梦才 1MB 好吗
        4
    hronro   220 天前   ♥ 1
    indexDB
        5
    jiafaner   220 天前
    @yingfengi
    @fyibmsd

    很奇葩的需求,场景其实是因为最初用 C#给客户做的本地软件,有很多很多数据都是本地存储,后来做了第二版是 WEB 的,现在只用 WEB 导致访问太多了
        6
    jiafaner   220 天前
    @1iuh 用这样的方法还是有点问题,因为有时候还会变更这些数据,所以更新的时候用 js 文件,会不知道什么时候更新
        7
    jiafaner   220 天前
    @hronro 我百度到了这个 http://www.ruanyifeng.com/blog/2018/07/indexeddb.html

    能存 250M,足够用了

    浏览器好强大,有数据库一样的东西,谢谢啦
        8
    imn1   220 天前
    访问太频繁,请使用 APP 扫码访问
        9
    mahonex   220 天前 via iPhone
    https://github.com/localForage/localForage 正在用 和你使用场景差不多 我们用来存二进制 效果还可以
        10
    yhxx   220 天前
    15-40M.。。真可怕

    Web SQL 或者 IndexedDB 吧
        11
    whileFalse   220 天前
    你们在用客户端的思路做 web。
    如果服务器请求太多,看看是不是接口没设计好,拆的太散了。
        12
    jiafaner   220 天前
    @whileFalse 接口都是原来 CS 系统时候的接口改成了 HTTP 的,改服务端的成本太高了,很多逻辑都不清楚没办法只能想办法在客户端搞搞
        13
    whileFalse   220 天前
    @jiafaner
    几个办法:
    1. 搞个中间层服务器,把你们原始服务器上的数据添加上那些静态的玩意再返回客户端
    2. 浏览器用到哪个数据再缓存到 localstorage 里。别一上来就直接拉 15m 的缓存啊。
    3. 向楼上说的,搞个 js 存数据。js 带版本号。数据变了之后页面引用的版本号改一下。
        14
    jiafaner   220 天前
    @whileFalse 我们现在还准备搞一个进度条,在第一次加载的时候拉 15M 的东西回来,这样的思路好像不对

    多谢你的方案,我得想想,这些接触得少,一下子不好理解
        15
    wbrobot   220 天前 via iPhone
    个人变成 V2EX 网友任务系列……
        16
    otakustay   220 天前
    那啥,其实不考虑直接用 HTTP Cache 搞定么,也没慢到哪里去
        17
    dalieba   216 天前 via Android
    @yhxx WebSQL 已经要淘汰了,W3C 推荐用 Web Storage 或者 IndexedDB
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   869 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 21:34 · PVG 05:34 · LAX 14:34 · JFK 17:34
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1