Eld*_*ley 7 javascript html5 indexeddb
我正在为HTML5构建文件存储,我使用indexedDB作为存储,我通过xmlHttpRequest从服务器请求文件,响应类型为arrayBuffer(对于chrome)和blob(对于其他浏览器).
即使文件集合大小为500MB或更多,一切都很好(嘿,它甚至可以达到GB).但是当我将文件添加到indexedDB时,我注意到一些奇怪的事情,当单个文件超过~120MB 时,它会触发错误,因此不会存储.但是当文件小于120MB时,它将存储它.
请注意,存储单个文件> 120MB时只会出现此错误,例如,200MB的.mp4文件会触发错误,但如果我有5个视频,每个视频的大小都为100MB(因此总数将为是500MB)一切都会好的.
我想知道这是一个限制规则还是一些故障,两者有相同的错误.我没有找到任何关于它的文档.我在IE和Chrome中测试过它.
编辑: 好的,我在存储文件时显然在indexedDB的add或put函数中得到了这个错误:
在e.target.error.message里面:
序列化值太大(size = 140989466 bytes,max = 133169152 bytes)
我认为这是您的浏览器的 IndexedDB 实现的问题。当我尝试将 100 MB 文件存储到 IndexedDB 记录中时,我自己在 Firefox 中也遇到了同样的错误,但相同的代码在 Chrome 中运行良好。似乎不同的浏览器有不同的实现怪癖和限制。
就我个人而言,我怀疑这是 Firefox 中的一个错误,因为 Firefox 会授予请求的大小,但随后会阻止单个记录使用整个大小,而 Chrome 则更宽容。
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |