FrankKai / FrankKai.github.io

FE blog
https://frankkai.github.io/
362 stars 39 forks source link

localStorage,sessionStorage存储限制是多大? #179

Open FrankKai opened 4 years ago

FrankKai commented 4 years ago

测试localStorage存储限制的网站

最大存储char数。

https://arty.name/localstorage.html

测试浏览器所有storage的限制

KB,MB细粒度测试localStorage,sessionStorage,IndexedDB,WebSQL和FileSystem的存储上限。

https://demo.agektmr.com/storage/

PC: Chrome/Firefox/IE/Safari的localStorage/SessionStorage限制

浏览器名称 localStorage limit sessionStorage limit
Chrome40 10MB 10MB
Firefox34 10MB 10MB
IE9 10MB 10MB
Safari 5MB 无限大

上述实验结果在Chrome80,Firefox72,Safari605上测试全部验证成功。

Mobile: Android Browser/iOS Browser的localStorage/sessionStorage限制

浏览器名称 localStorage limit sessionStorage limit
Chrome40 for Android 10MB 10MB
Firefox34 for Android 10MB 10MB
Android Browser 2MB 无限大
Mobile Safari 8 5MB 无限大
iOS WebView(Safari 8) 5MB 无限大

PC端localStorage/sessionStorage限制至多10MB,如何使用更大的存储空间?

考虑到Safari不支持FileSystem和WebSQL,因此建议使用兼容性更好的IndexedDB。 下面来看一下IndexedDB在各个PC端浏览器的表现。

浏览器名称 IndexedDB limit
Chrome40 指定配额
Firefox34 50MB,无限大
IE10,IE11 10MB,250MB(~999MB)
Safari 指定配额

可以使用localForage,会按照 IndexedDB,WebSQL,localStorage 的顺序选择驱动,这也算是一个扩大存储的机制。

By default, localForage selects backend drivers for the datastore in this order:

1. IndexedDB
2. WebSQL
3. localStorage

vue生态下可以使用:vlf

除了可以选择驱动外扩展存储外,localForage还可以存储多种非string类型的数据。

Mobile端localStorage/sessionStorage限制至多10MB,如何使用更大的存储空间?(待实践)

由于缺少移动端的实践,因此这里待填充。

V站讨论

localStorage 和 sessionStorage 什么场景下存储达到上限呢?

参考资料:https://www.html5rocks.com/en/tutorials/offline/quota-research/