javascript - 系统地更新 IMG 的 src。内存泄漏

标签 javascript jquery image

系统地更新 IMG 的 src。内存泄漏。

我目前每 x 秒更新一次图像。我想到的几种方法如下:

拿一个:

var url ="...";
$('#ImageID').attr('src', url);

现在这可以完美地改变图像但是会导致内存泄漏。

两个:

所以它正在创建 DOM 元素,所以我尝试了以下操作。

<div id="ImageHolder">

</div>

var image - "..."; //Obv actual image in working.

$('#ImageHolder').empty();
$('#ImageHolder').html(image);

现在这可行,但当它改变时会导致闪烁,这是不一样的。现在有两张图片并每隔一定时间交换它们就可以正常工作,但我想保持尽可能低的带宽。

编辑 1:

我的代码:

<form name="selected">
<input type="hidden" name="map" />
</form>

<img id="MyMaps" src="http://localhost/web/blank.png" alt="" />


<script type="text/javascript">
var locate = window.location;
var uri = document.selected.map.value;

var MyHost = window.location.hostname;
    function delineate2(name) {
        totheleft= uri.indexOf("maps/") + 5;
        totheright= uri.lastIndexOf("&");
        return (uri.substring(totheleft, totheright));
    }

    function loadImage() {
        var CurrentMap = delineate2(name);
        var url = 'http://' + MyHost+ '/map/' + CurrentMap+ '/image?' + new Date().getTime();

        $('#MyMaps').attr('src', url);

        setTimeout(loadImage, 10000);
    }
</script>

有没有人做过类似的事情并找到了可行的解决方案,或者我该如何防止图像更新时的内存泄漏/闪烁?

最佳答案

我相信您的“take one”应该有效。应该没有内存泄漏。你每次都在覆盖 src 标签——如果你没有对旧图像的其他引用,它们应该被垃圾收集。我在 FF 和 Chrome 中看到了这个问题。 Chrome 告诉我 JS 内存使用是恒定的,内存一定是丢失了。 我打开了一个 Chrome 错误: https://code.google.com/p/chromium/issues/detail?id=309543 如果你也想增加体重并且可能给这个错误加注星标 :)

关于javascript - 系统地更新 IMG 的 src。内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682271/

相关文章:

java - 在 Java 应用程序中显示文件(图像)

html - 响应图像没有响应

php - Javascript 从单独的 php 脚本获取输出

javascript - F# JQuery Ajax 发布

javascript - 仅在第一个图像上设置 jQuery attr()

javascript - 页面仅在刷新后加载 CSS 和 JavaScript

javascript - 对于法语,JQuery 对十进制数字的验证失败

javascript - 无法弄清楚为什么 jQuery UI Datepicker 不将日期插入输入

python - 如何使用 opencv - python 识别图像的形状是对称的还是不对称的?

javascript - 带 Turbolinks 的 Rails Bootstrap 4