浏览器刷新后仍显示之前已加载的本地图片的方法有哪些

2020-07-01 07:37:13 +08:00
 Tlin

前端: 1 、要求就是浏览器加载本地任意图片,刷新后仍然能够显示之前的那张图片。 2 、图片只能本地获取。 这样做是让那些内存很大的图片能快速加载出来。用 input 不能读取文件路径,常规的方法可能不行了。使用 blob 的话刷新后就会再次改变了,base64 不知行不,但是对于大图片真的不行 大家有什么办法吗?最好不使用插件的情况下。

2789 次点击
所在节点    JavaScript
14 条回复
VDimos
2020-07-01 07:55:39 +08:00
那就 base64+web sql 呗
rioshikelong121
2020-07-01 07:57:50 +08:00
你的所谓的大图片有多大。
tangkaichuan
2020-07-01 08:15:08 +08:00
yc8332
2020-07-01 08:15:10 +08:00
base64 存 localstorage
toma77
2020-07-01 09:32:41 +08:00
base64
nianyu
2020-07-01 09:32:41 +08:00
把图片的 base64 存 localstorage 里, 但是有个问题几个大图很容易就超出 localstorage 的存储范围。
这个需求谁提的?把他解决掉
DOLLOR
2020-07-01 09:36:19 +08:00
存 IndexedDB 里,IndexedDB 容量大,可以直接存 blob,不需要 base64,而且是异步的。
LyleRockkk
2020-07-01 09:47:12 +08:00
不用服务器的话,本地图片浏览器拿到的就是文件对象,刷新就会丢了,浏览器也不能不通过用户操作直接读取本地文件,转成 base64 存 localstorage,大图,多了 localstorage 也不够用,改需求吧。
whypool
2020-07-01 10:18:06 +08:00
从服务器拉就行了

input 上传了预览直接使用服务端生成的链接,写入 cookie,刷新了判断 cookie 返回原来的链接

这点破事能不能让后端做?
phpfpm
2020-07-01 10:21:47 +08:00
我觉得你需要的是 electron 之类的,而不是浏览器的 webapp……

先说你的原始需求。。
又 xy 了 真愁人
guyeu
2020-07-01 10:31:11 +08:00
@whypool #9 能不能详细说一下,这个思路比较清奇。。
pinkSlime
2020-07-01 10:31:40 +08:00
不考虑兼容的话好说 blob 转 ArrayBuffer 存 IndexedDB
des
2020-07-01 10:43:43 +08:00
@pinkSlime 这个可以支持 GB 级别的存储

硬要弄的话也不是不行
https://developer.mozilla.org/zh-CN/docs/Web/API/LocalFileSystem#requestFileSystem
Tlin
2020-07-02 08:30:45 +08:00
@VDimos
@rioshikelong121
@tangkaichuan
@yc8332
@toma77
@nianyu
@DOLLOR
@LyleRockkk
@whypool
@phpfpm
@guyeu
@pinkSlime
@des
谢谢回复。我用了转 base64 存 indexedDB 里,感觉还好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX