Json vuejs应用程序中无法检测到的内存泄漏

Json vuejs应用程序中无法检测到的内存泄漏,json,memory-management,memory-leaks,vue.js,Json,Memory Management,Memory Leaks,Vue.js,我试图解决这个问题已经有一段时间了,我甚至尝试重写整个程序,但没有成功。该应用程序在VueJS 2.3.3上运行,应该在Chromium上与Raspberry Pi结合运行(暂时不提供相关信息) 我们正在处理包含在单个文件中的几个组件,稍后将使用gulp或npm run dev编译此文件。当VueJS实例初始化时,将使用Vue资源的$http选项发送请求。这将收到大小约为30mb的json响应。这将保存在数据数组中,如下所示: this.$http.get('<url>' + thi

我试图解决这个问题已经有一段时间了,我甚至尝试重写整个程序,但没有成功。该应用程序在VueJS 2.3.3上运行,应该在Chromium上与Raspberry Pi结合运行(暂时不提供相关信息)

我们正在处理包含在单个文件中的几个组件,稍后将使用
gulp
npm run dev
编译此文件。当
VueJS
实例初始化时,将使用
Vue资源
$http
选项发送请求。这将收到大小约为
30mb的json响应。这将保存在数据数组中,如下所示:

this.$http.get('<url>' + this.token)
    .then((response) => {
        this.properties = response.properties;
    });
每个(所谓的)
属性
至少有6个base64图像保存在它的JSON中,这些图像稍后用于呈现给用户。除此之外,还有姓名、地址和其他一些微小的数据位。这听起来并没有那么错,但我感觉每个响应都会让内存变得非常紧张,甚至连桌面都无法运行它

每10秒,用户屏幕上将显示一个新的
属性
,包括图像、街道、位置等。我不确定我的代码中是否存在内存泄漏或我是否忘记了什么。我脑子里突然冒出几个问题:

  • 我是否需要重置从服务器返回的响应
    null
    未定义
  • 我正在使用的某个插件(仅VueResources)是否会出现漏洞
  • 一个
    VueJS
    实例可以存活多久,是否有任何建议的时间来重新加载整个程序
  • 为了实现这一目标,我应该考虑什么
  • 我已经拿出数据更新,并把一个演示项目放在网上,这是可以看到的权利。我遇到的主要问题是浏览器内存不足,并向我们显示了惊人的
    Aw快照网页从铬。我试着从内存使用情况中拍摄快照,但一切似乎都很好,只是过了一段时间后随机爆炸


    提前感谢

    好吧,我不知道你的应用程序到底做了什么,但是你的30Mb数据真的有用/重要吗?在JSON中

    也许你不需要所有这些数据,你可以根据自己的需要调整数据。例如,保留JSON存储数据,并通过另一种方式检索Base64图像

    我不明白你为什么把图像存储在内存中。在我看来,图像只是用于显示目的

    所以我认为30Mb真的是太大了。但也许我错了


    顺便说一下,我每晚都用Firefox进行测试,这里没有问题。似乎没有崩溃。也许我没有遇到刷新呼叫?

    在线版本中已关闭刷新,以演示我们正在做的事情。我们在json中将图像保留为base64,这样当计算机没有internet时,图像仍然可以显示。而30mb仍然很小,应用程序中的一些步骤有720幅左右的图像。总计数百兆。。我们已尝试将这些存储在本地存储中,但无法在Pi上分配正确的大小。我会打开数据刷新并上传,当数据在线时,我会提醒大家注意。:)我把它打开了,这次不能换幻灯片了。它在完成下载后10秒刷新数据。目前的大小约为38.5mb,我还在生产模式下运行了gulp。事实上,每次刷新都会增加内存消耗。我现在是420MB。对于这样的网络应用来说太多了。我想你必须尽量不要在VueJS反应系统中存储图像。我们应该将它们存储在哪里,知道吗?我试过本地存储,没有成功。甚至尝试了本地sql存储,但结果也是太多的负载。好吧,因为我不确定您尝试如何处理所有这些文件,我只能说,将二进制数据集成到Vue系统中不是一个好主意。。。如果你想在使用之前“预取”图像,我认为你可以做不同的事情。例如,通过插入带有
    显示:无
    css规则的
    元素?如果你想把这些文件存储到离线状态,我不知道你怎么做,因为我不知道你的文件是否取决于用户?也许去吧,我不知何故也遇到了同样的问题。我正在raspberry pi 3/4上的chromium浏览器中运行vue应用程序,chromium浏览器(还有electron)似乎无法释放未使用的内存,甚至在数小时内(取决于内容)填满内存,并导致“aw snap!”。我无法在应用程序本身中看到任何内存泄漏。唯一有助于释放内存的方法是关闭并重新启动Chrome。
    this.dataTimeout = setTimeout(this.refreshData, 300000);