Helpex - Trao đổi & giúp đỡ Đăng nhập
4

Tôi đang cố gắng tải trước hình ảnh để xóa những hình ảnh sẽ phản hồi bằng mã trạng thái HTTP 404 hoặc 500. Tôi cần biết mã trạng thái HTTP là gìtôi cần lưu hình ảnh vào bộ nhớ đệm . Đây là vấn đề của tôi:

  1. Nếu tôi sử dụng thẻ Imagehoặc <img/>thẻ giả , hình ảnh sẽ được lưu vào bộ nhớ đệm nhưng tôi không thể biết mã trạng thái HTTP trong lệnh onerrorgọi lại.
  2. Nếu tôi sử dụng XHR ( $.getcho jQuery hoặc $http.getcho góc), tôi nhận được mã trạng thái nhưng hình ảnh không được lưu vào bộ nhớ cache (thực <img/>sẽ tải lại dữ liệu). Tôi nghĩ rằng tôi không có quyền kiểm soát bộ nhớ đệm vì đây là quy tắc của trình duyệt.

Có phương pháp nào cho phép có mã trạng thái HTTP và hình ảnh được trình duyệt lưu vào bộ nhớ cache không?

4 hữu ích 0 bình luận 2.1k xem chia sẻ
1

Sử dụng kết hợp cả hai bằng cách onerrorkích hoạt yêu cầu để biết thêm chi tiết

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

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

Lưu ý rằng điều này sẽ tuân theo các hạn chế CORS đối với các nguồn tên miền chéo

Hoặc nếu điều này nằm trong một chỉ thị được chỉ định cho phần tử hình ảnh:

 link:function(scope, element){
    element[0].onerror = function(err){
       $.get(element[0].src).fail(xhr){
          //parse xhr details and do something with them      
       })
    }
 }
1 hữu ích 4 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript jquery html angularjs caching , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading