如何在不填充磁盘的情况下测试IndexedDB 'QuotaExceededError'?

fwzugrvs  于 2022-12-16  发布在  IndexedDB
关注(0)|答案(5)|浏览(166)

我想确保我的代码正确处理QuotaExceededError与IndexedDB,我不希望折磨我的SSD这样做。
有没有办法在开发者工具或浏览器设置中设置存储限制(比如说5 MB)?

mrfwxfqh

mrfwxfqh1#

在Chrome中,您可以通过--user-data-dir指向较小的音量启动浏览器,例如通过tmpfs
Chrome没有devtools对这类测试的支持,但它在我们的愿望清单上。

hwazgwia

hwazgwia2#

从今天起,您可以打开DevTools,转到Application面板并检查Simulate custom storage quota标签,然后提供IndexedDB可以存储的最大MB数。
Chrome DevTools Application Panel Screeshot

but5z9lq

but5z9lq3#

我用的是一个硬盘很小的虚拟机,这显然不是很理想,所以我希望有人能给我一个更好的答案!

ibps3vxo

ibps3vxo4#

在@joshua-bell回答的基础上,增加了在MacOSX中如何做到这一点的细节:
1.将mount-ram.sh文件复制到https://gist.github.com/koshigoe/822455(稍后您可能还需要unmount-ram.sh文件)
1.将该文件保存在任何您想要的位置
1.从保存mount-ram.sh的目录中,运行sh mount-ram.sh mytmpfs 512

  1. cd /Applications/Google Chrome.app/Contents/MacOS(至少在我的机器上是这样的)
  2. ./Google\ Chrome --user-data-dir=/PATH/TO/mytmpfs/,将/PATH/TO/mytmpfs/替换为您在步骤3中创建的目录的路径。
    现在你已经运行了Chrome,指向一个只有512 MB存储空间的文件系统。
wtzytmuj

wtzytmuj5#

如果你可以接受100MB的存储空间限制,只需在隐身模式下打开Chrome。
要查看剩余的存储空间,请尝试以下操作:

navigator.storage.estimate().then(console.log)

相关问题