【发布时间】:2011-05-14 23:27:52
【问题描述】:
我有一个 HTML 页面,它从 WebSocket 获取 base64 图像数据,然后将其显示给用户。图像会定期更改(新的 base64 图像被推送到套接字上),因此必须对新图像进行解码然后显示给用户。
我目前的问题是图像更新后,以前的图像似乎永远不会从浏览器的内存中删除。如果我看一下 Chrome 的资源页面,我可以看到所有图像仍然位于浏览器内存中。如果图像文件足够大并且变化足够快,浏览器的内存将填满到崩溃的地步。
知道如何解决这个问题吗?我已经粘贴了下面代码的 sn-p。
<html>
<head>
<title>Presenter</title>
<style>
html,body{font:normal 0.9em arial,helvetica;text-align:center;}
#dynamicImage { margin:0px auto; }
</style>
<script type="text/javascript">
function handleMessage(data) {
switch(data.type) {
case 'imageUpdate':
// replace the image
$('#dynamicImage').attr({
'src': "data:image/jpeg;base64," + data.image,
});
break;
}
}
</script>
</head>
<body>
<div id="dynamicImageWrapper">
<img id="dynamicImage" src="./WhitePixel45w.jpg" />
</div>
</body>
</html>
【问题讨论】:
标签: javascript ajax html websocket