系统更新IMG的src。内存泄漏。
我目前每 x 秒更新一张图像。我想到的几种方法如下:
拿一个:
var url ="...";
$('#ImageID').attr('src', url);
现在这个作品完美地改变了形象but导致内存泄漏。
取二:
所以它正在创建 DOM 元素,所以我尝试了以下操作。
<div id="ImageHolder">
</div>
var image - "..."; //Obv actual image in working.
$('#ImageHolder').empty();
$('#ImageHolder').html(image);
现在这可以工作,但当它改变时会导致闪烁,这是不受欢迎的。现在使用两个图像并定期交换它们效果很好,但我想保持尽可能低的带宽。
Edit 1:
My Code:
<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>
有没有人做过类似的事情并找到了可行的解决方案,或者我该如何防止图像更新时的内存泄漏/闪烁?
我相信你的“拿一个”应该有效。不应该有内存泄漏。你每次都会覆盖 src 标签 - 如果你没有对旧图像的其他引用,它们应该被垃圾收集。我在 FF 和 Chrome 中看到这个问题。 Chrome 告诉我 JS 内存使用量是恒定的,如果是其他地方,内存一定会丢失。
我打开了一个 Chrome 错误:https://code.google.com/p/chromium/issues/detail?id=309543 https://code.google.com/p/chromium/issues/detail?id=309543如果你也想输入你的体重,也许还想给 bug 加上星号:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)