innerHTML img内存泄漏

问题描述

tcp服务器继续转发新的图像路径。

客户端继续通过其接收的路径更新图像。

我认为.innerHTML = "<img会导致内存泄漏

<script src="/socket.io/socket.io.js"></script>

<script type="text/javascript">
    const socket = io();
    socket.on('data',(msg)=>{
        document.getElementById('IMG').innerHTML = "<img src="+msg.imagePath + ">";
    });
</script>

这是我的第二个计划。

如何继续更改图像而不会出现内存泄漏?

<script src="/socket.io/socket.io.js"></script>

<script type="text/javascript">
    const socket = io();
    socket.on('data',(msg)=>{
        (function(){
            document.getElementById('IMG').innerHTML = "<img src="+msg.imagePath + ">";
        }());
    });
</script>

解决方法

您只能更改src

document.querySelector('#IMG').setAttribute('src',msg.imagePath);
,

您可以尝试以下操作:

<script src="/socket.io/socket.io.js"></script>

<script type="text/javascript">
    const socket = io();
    socket.on('data',(msg)=>{
        document.getElementById('IMG').setAttribute("src",msg.imagePath);
    });
</script>

这样,您将更新img元素的src属性。