我的情况(非常简化)如下:
Javascript代码(简化)
//called by a timer
function refresh_ipcam(id){
if(parseInt($("#"+id).attr('refresh_finished')) == 1){
$("#"+id).attr('refresh_finished',0);
var img = new Image(....);
var x = new Date().getTime();
img.src = "get_image.php?id="+id+"&random="+x;
img.onload = function(){
$("#"+id).html(img);
$("#"+id).attr('refresh_finished',1);
}
img.onerror = function(e){
setTimeout(function(e){
$("#"+id).attr('refresh_finished',1);
},2000)
}
}
}
通过添加随机参数,浏览器始终会检测到新图像。通过这种方式我解决了一个问题(图像没有正确更新缓存问题)。但我认为,鉴于提出的请求数量很多,这种方式还存在另一种问题。
有些用户报告了浏览器的阻止(一段时间后)。这可能是与完整缓存相关的问题吗?
从谷歌Chrome控制台,在应用程序>框架>图片部分,我注意到每个请求(get_image.php)都匹配此列表中的新元素。
答案 0 :(得分:0)
看起来基于图像源操作的解决方案效果不佳。他们使用大量内存甚至可能导致浏览器崩溃。可能你需要考虑live streaming web video。
有关详细信息,请查看: