Javascript 不断更改图像src/内存使用(电子)

Javascript 不断更改图像src/内存使用(电子),javascript,electron,Javascript,Electron,以下是代码: let g = { characterImg: document.createElement('img'), num: 0 } function test() { let myDiv = document.getElementById('my-div') const param = '#date=' + new Date().getTime() const imagePath = (g.num + 1).toString() + '.png' + para

以下是代码:

let g = {
  characterImg: document.createElement('img'),
  num: 0
}

function test() {

  let myDiv = document.getElementById('my-div')

  const param = '#date=' + new Date().getTime()
  const imagePath = (g.num + 1).toString() + '.png' + param

  let removeListener = false
  const myFunction = function() {
    myDiv.style.backgroundImage = "url('" + imagePath + "')"

    if (removeListener)
      g.characterImg.removeEventListener('load', myFunction)
  }

  g.characterImg.src = imagePath
  if (g.characterImg.complete)
    myFunction()
  else {
    removeListener = true
    g.characterImg.addEventListener('load', myFunction)
  }

  // 15 pictures
  g.num = (g.num + 1) % 15
}
知道我的应用程序经常使用许多动画png文件,我有两个问题:

  • 多次执行测试函数会增加内存,而垃圾收集器不会在任何时候释放内存。即使在使用几分钟后只需几分钟,我也希望能够加载一个图像,每次加载都不会有一点泄漏。据我所知,改变src是原因,但我不知道如何解决这个问题

  • 更改背景图像不是内存泄漏,而是在不调用垃圾收集器的情况下不断增加内存,直到我将活动窗口最小化几秒钟,或者在我的情况下,当应用程序达到大约500个月的使用时间时。难道没有办法让应用程序更有效地调用垃圾收集器,或者至少为电子应用程序设置内存限制吗


  • 非常感谢您的帮助:)

    这是一个实际的答案,我使用了fs.readFile,然后在base64中设置了background属性

    fs.readFile(imagePath, function(err, data) {
    if (err) throw err
      const myImageData = 'data:image/png;base64,' + data.toString('base64')
      myDiv.style.backgroundImage = 'url(' + myImageData + ')'
    })
    
    比每次都创建一个图像要好得多