2013-03-12 37 views

Trả lời

14

Kiểm tra nếu complete thuộc tính của đối tượng Imagetrue:

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 
+1

@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

+2

Đ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

3

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"); 
Các vấn đề liên quan