javascript – 如何在客户端减少JSON.stringify使用的内存量?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在客户端减少JSON.stringify使用的内存量?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
使用JSON.stringify将大型javascript对象转换为字符串时,有没有办法减少客户端上的内存使用量?
我正在寻找解决下面问题的东西,但是对于客户端上的javascript.
Writing JSON to a stream without buffering the string in memory
当我尝试一个简单的JSON.stringify(big_object)时,它会迅速占用所有RAM并冻结我的计算机.
当我尝试将大对象写入indexedDB时会发生相同的内存使用问题,如此处所述.
Example of memory leak in indexedDB at store.add (see Example at Edit)
三年前的这两个问题似乎有同样的问题,但我找不到找到解决方案.
How can I make a really long string using IndexedDB without crashing the browser?
更大的问题是:在用户可以在indexedDB数据库中累积大量数据的离线Web应用程序中,将该数据备份到硬盘的过程似乎是将数据写入对象,将对象转换为字符串,将字符串转换为blob文本,然后将blob下载到磁盘.要上传文件并将其写回数据库,请执行相反的操作.但是,大对象上的JSON.stringify和JSON.parse会占用所有内存并导致浏览器或整个计算机崩溃.
此链接似乎表明indexedDB中的大blob问题已得到解决,但这似乎无法解决此问题,是吗?该对象不能直接转换为blob,可以吗?而且,如果是这样,可以从blob中恢复有组织的对象吗?
不稳定的IndexedDB大文件存储操作导致IndexedDB消耗大量未释放的内存.
https://bugzilla.mozilla.org/show_bug.cgi?id=1223782
除了让用户下载和上传多个文件进行备份并恢复他们保存在数据库中的工作外,还有另一种方法可以在客户端和离线时实现这一点吗?
感谢您提供的任何指示.
解决方法:
“当我尝试将大型对象写入indexedDB时会发生相同的内存使用问题,详见此处.”
indexDB在移动设备上的限制为5mb /在桌面上为50mb,因此如果您的对象超出了与indexDB相关的基于设备的边界
至于从大型对象创建一个巨大的刺痛,你可能会遇到V8字符串长度限制,目前限制为512MB.因此,您需要使用基于流的解析/序列化,如big-json
内容总结
以上是互联网集市为您收集整理的javascript – 如何在客户端减少JSON.stringify使用的内存量?全部内容,希望文章能够帮你解决javascript – 如何在客户端减少JSON.stringify使用的内存量?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。