使用javascript's settimeout加载图像时内存泄漏
Memory leak when loading images with javascript's settimeout
我设置了一种监控系统,相机每秒拍摄一张照片,并将这张照片发送到服务器,在服务器上它会覆盖前一张照片。在客户端,我有一个简单的javascript与settimeout
每秒加载此图像
$("img").attr("src", "http://mysite/image.jpg?randomString="+new Date().getTime());
但是这会导致内存泄漏并最终导致页面崩溃。怎样才能避免这种情况呢?缓存是问题所在吗?浏览器是否缓存每一个新图像,每秒钟,这是内存泄漏的原因?
它可能是一个缓存问题,因为浏览器可能缓存所有这些图像,因为它们每次都有新的图像名称(这应该不会导致崩溃)。
在这种情况下,在头文件中设置这些缓存指令,看看它是否解决了问题:
<!-- disable caching on proxy servers -->
<meta http-equiv="pragma" content="no-cache">
<!-- set expiration date to "immediately" -->
<meta http-equiv="expires" content="0">
<!-- instruct the browser to not cache the webpage -->
<meta http-equiv="cache-control" content="no-cache" />
另一方面,可能是另一个问题是你的javascript。如果服务器不能及时处理http请求,就会在浏览器中排队等待大量未解析的http请求。尝试将超时设置为5秒(= 5000毫秒)。
第三种可能的解决方案是使用纯javascript操作图像,以消除jQuery内存泄漏的可能性。
// cache the element once
var img = document.querySelector("img");
// use in setTimeout (Don't create a new Time Object on every call):
img.src = "/image.jpg?randomString="+Date.now();
相关文章:
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 在检索数据时是否可以停止图像加载请求
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- jQuery:获取图像加载错误的详细信息
- 在safari和chrome中,js图像加载产生了奇怪的结果
- 图像加载不适用于 IE 8 或更低版本
- 这个图像加载功能有什么作用
- JavaScript 图像加载器不起作用
- 动态图像加载是否会减少服务器过载
- 跨来源图像加载被拒绝-仅限iPhone-简单图像上传
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时
- 使用JavaScript延迟图像加载
- 如果当前图像加载缓慢,如何加载其他图像
- HTML图像加载触发一个错误
- 将图像加载到localStorage,并将图像src设置到该位置
- jquery图像加载检查错误
- 将图像加载到织物画布背景中
- 需要在bootstrap css中单击时将图像加载为模态
- 正在显示加载..在将新图像加载到网站时播放动画
- 砖石事件:在图像加载和布局完成后调用事件