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

时间:2018-10-28 01:42:23

标签: javascript indexeddb

我想确保我的代码可以正确处理IndexedDB的QuotaExceededError,所以我不想折磨我的SSD。

是否可以在开发人员工具或浏览器设置中设置存储限制(例如5 MB)?

4 个答案:

答案 0 :(得分:5)

在Chrome中,您可以将--user-data-dir指向较小的音量(例如,通过tmpfs

Chrome浏览器不支持devtools进行此类测试,但它在愿望清单上。

答案 1 :(得分:1)

我使用了带有小型硬盘的VM。显然,这并不理想,所以我希望有人提出更好的答案!

答案 2 :(得分:1)

以@ joshua-bell的答案为基础,但添加了有关如何在Mac OSX中执行此操作的详细信息:

  1. mount-ram.sh文件复制到https://gist.github.com/koshigoe/822455(以后可能还需要unmount-ram.sh文件)
  2. 将该文件保存在您想要的任何位置
  3. 从保存mount-ram.sh的目录中,运行sh mount-ram.sh mytmpfs 512
  4. cd /Applications/Google Chrome.app/Contents/MacOS(至少是我的机器上的位置)
  5. ./Google\ Chrome --user-data-dir=/PATH/TO/mytmpfs/,将/PATH/TO/mytmpfs/替换为您在步骤3中创建的目录的路径。

现在您已经运行了Chrome,指向的是只有512MB存储空间的文件系统。

答案 3 :(得分:0)

如果您可以设置100MB的存储空间,则只需以隐身模式打开Chrome。

要查看剩余的存储空间,请尝试以下操作:

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