上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

添加到数组的数据导致浏览器内存溢出怎么办?

[复制链接]
  • TA的每日心情
    开心
    2023-12-14 10:17
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    3

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2023-12-13 13:40:29 | 显示全部楼层 | 阅读模式
    悬赏5油猫币未解决

    给客户写了个插件,需要循环从网页获取数据然后下载成文件,然后我是把处理后的数据都添加到一个数组里了,循环1000-2000次之后程序就停止,调查了一下好像是这个数组数据太多,浏览器内存溢出,这种有什么好的办法解决。图片1.png图片2.png

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 193 天

    [LV.7]常住居民III

    710

    主题

    5881

    回帖

    6704

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6704

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-12-13 15:28:28 | 显示全部楼层
    如果说要下载成多个文件
    可以不保存数组要求允许网页自动下载文件,直接不保存了弹出下载
    如果要保存成单个文件
    可能可以通过流下载方式解决
    https://github.com/jimmywarting/StreamSaver.js
    可以试试这个库,但是我没尝试过
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-14 10:17
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    3

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2023-12-13 16:25:53 | 显示全部楼层
    李恒道 发表于 2023-12-13 15:28
    如果说要下载成多个文件
    可以不保存数组要求允许网页自动下载文件,直接不保存了弹出下载
    如果要保存成单个 ...

    好的,大佬,我先试试
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-12-13 22:22:14 | 显示全部楼层
    这种需求听上去不是很适合用浏览器来做,就算不溢出也会很慢,你应该考虑用其他语言来写爬虫。
    优化建议:
    1.将同步的循环改成异步,以避免堆栈问题。
    2.将一个大文件分割成多个小文件下载。
    3.用IndexedDB来存储数据,这个API我不太熟悉,但可能符合你的需求。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表