khi tôi tham gia một cuộc phỏng vấn, tôi đã được hỏi câu hỏi, tôi không biết phải trả lời như thế nào.cách kiểm tra xem một hình ảnh đã được lưu trong bộ nhớ js chưa?
bạn có biết điểm mấu chốt của câu hỏi không?
khi tôi tham gia một cuộc phỏng vấn, tôi đã được hỏi câu hỏi, tôi không biết phải trả lời như thế nào.cách kiểm tra xem một hình ảnh đã được lưu trong bộ nhớ js chưa?
bạn có biết điểm mấu chốt của câu hỏi không?
Kiểm tra nếu complete
thuộc tính của đối tượng Image
là true
:
function is_cached(src) {
var image = new Image();
image.src = src;
return image.complete;
}
Có vẻ như để làm việc (mặc dù nó sẽ tải các hình ảnh nếu nó không có trong bộ nhớ cache, mà có thể không được những gì bạn muốn):
> is_cached('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3')
false
> is_cached('http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3')
true
bạn có thể kiểm tra như:
function is_cached(img_url){
var imgEle = document.createElement("img");
imgEle.src = img_url;
return imgEle.complete || (imgEle.width+imgEle.height) > 0;
}
//and check, returns true or false depending on cached or not
is_cached("http://www.somesite.com/some_image.jpg");
@JaredFarr ish - Tôi cho rằng từ ngữ bạn đang tìm kiếm là "những trường hợp thử nghiệm này đã được thông qua". Với tôi "nó dường như làm việc" ngụ ý không đi ra khỏi con đường của mình để nghiên cứu vấn đề sâu sắc hơn câu hỏi được bảo đảm. – aaaaaa
Điều này không kiểm tra bộ nhớ cache. Nó kiểm tra DOM, bạn có thể xác minh điều này bằng cách mở hai tab, "kiểm tra" trong một tab (false) "kiểm tra" một lần nữa trong cùng một tab (đúng) và sau đó đi đến tab thứ hai và "kiểm tra" (sai), mặc dù nó sẽ được lưu trữ. – Cheruvian