【问题标题】:Can 5xx/4xx errors for resource loads be hidden in the console?资源加载的 5xx/4xx 错误可以隐藏在控制台中吗?
【发布时间】:2011-09-11 03:13:09
【问题描述】:

我一直在更新我的一个宠物项目(一个实时照片网站),我正在尝试解决一个小问题。

当图像正在加载并且远程服务器以某种方式失败(返回 500、404 等)时,如果控制台打开,您可以看到失败的请求。

即使我捕获了错误,失败的请求仍然会出现。虽然这不会给应用本身带来任何性能或问题,但它确实让我有点恼火。

想知道是否有人知道如何阻止日志出现,或者它是否只是浏览器中的一些内容。

当我说控制台时,我指的是 Chrome、Safari 和 Firefox (Firebug) 中的开发人员工具栏。

这是我加载图像的一种方式。基本上是在完成时进行预加载和附加:

$(new Image())
    .load(function(){
        $(this).appendTo( $('#container') );
    })
    .error(function(err){
        //do whatever here. try/catch insider here doesn't stop the error from showing  
    })
    .attr('src', imgsrc);

【问题讨论】:

  • load 方法实际上是在“生成”HTTP 请求错误,因此 try/catch 需要对其进行包装。
  • 我认为您正在做一些事情。但是由于这种情况下的请求是在 Image 对象的 src 属性发生更改时生成的,所以我看不到在如此低的级别上捕获错误的方法。我只是尝试包装 img.src = imgsrc;在尝试/捕获中,但它不起作用。好主意。

标签: javascript error-handling console


【解决方案1】:
try {
    $(new Image())
    .load(function(){
        $(this).appendTo( $('#container') );
    })
    .attr('src', imgsrc);
} catch(e) {
    //code here
}

你可以试试。

【讨论】:

  • 不,这就是我在不同地方(包装、内部等)尝试 try/catch 时的意思。仍然显示资源加载错误。错误事件 fire,所以我可以捕获这些事件以进行报告等,但控制台仍然显示失败。
  • 啊,所以您试图简单地防止 js 控制台中的错误报告....我认为您无法控制它,因为它内置在浏览器中,并且它们不会打开选项这个。
  • 是的,我也是这么想的。我认为它刚刚出炉。
猜你喜欢
  • 2023-01-23
  • 1970-01-01
  • 2014-03-31
  • 2018-01-26
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
相关资源
最近更新 更多