微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Javascript加载和缓存图像并了解HTTP状态代码

我正在尝试预加载图像以删除那些会响应404或500 HTTP状态代码的图像.我需要知道什么是HTTP状态代码,我需要缓存图像.这是我的问题:

>如果我使用图像或虚拟< img />标记,图像被缓存但我无法知道onerror回调中的HTTP状态代码.
>如果我使用XHR($.get用于jQuery或$http.get用于角度),我会获得状态代码,但图像不会被缓存(真正的< img />会再次加载数据).我认为我无法控制缓存,因为这是一个浏览器规则.

是否有一种方法可以使HTTP状态代码和浏览器缓存的图像?

解决方法

通过使用onerror触发请求以获取更多详细信息,使用两者的组合

var img= document.createElement('img');
img.src="....";

img.onerror = function(err){
   $.get(img.src).fail(xhr){
        //parse xhr details and do something with them      
   })
}

请注意,这将受到跨域源的CORS限制

或者,如果这是在指定给image元素的指令中:

link:function(scope,element){
    element[0].onerror = function(err){
       $.get(element[0].src).fail(xhr){
          //parse xhr details and do something with them      
       })
    }
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐