【问题标题】:Multiple ipcam request can block the browser?多个ipcam请求可以阻止浏览器?
【发布时间】:2017-04-21 10:13:59
【问题描述】:

我的情况(很简单)如下:

  • 在单个页面中,我有 n 个 ipcam 对象。每个 ipcam 对象都有自己的 div ,每次收到上一张图像时都会更新 ipcam 的图像。
  • 一个 javascript 函数调用一个 php 文件(将 ipcam 的 id 作为参数传递),该文件通过套接字请求返回图像(在选择该特定 id [ip、端口、身份验证、用户名、密码等的设置后] )。

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)
        }
    }
}

通过添加随机参数,浏览器总是会检测到新图像。通过这种方式,我解决了一个问题(图像未针对缓存问题正确更新)。但是我认为这种方式存在另一种问题,因为请求的数量很大。

一些用户报告了浏览器的阻塞(一段时间后)。这可能是与完整缓存有关的问题吗?

在 google chrome 控制台的 Application > Frames > Images 部分,我注意到每个请求 (get_image.php) 都匹配此列表中的一个新元素。

【问题讨论】:

    标签: browser-cache


    【解决方案1】:

    看起来基于图像源处理的解决方案效果不佳。他们使用大量内存,甚至可能使浏览器崩溃。可能你需要考虑live streaming web video

    更多信息请查看:

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 2016-11-08
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多