2009-10-19 8 views
26

Cách tốt nhất để thiết lập hình ảnh dự phòng cục bộ là gì nếu hình ảnh bên ngoài không tải hoặc tải quá lâu.Hình ảnh dự phòng và thời gian chờ - Nội dung bên ngoài. Javascript

+0

Brilliant! Tôi vừa định hỏi cùng một câu hỏi và tôi đã tìm kiếm nhanh trên google và tìm thấy câu hỏi này. Tôi đã nghĩ đến việc làm nó phía máy chủ, nhưng phía khách hàng âm thanh đơn giản hơn nhiều. – Skilldrick

Trả lời

43

Bạn có thể thêm một handler oneror:

<img src="http://example.com/somejpg.jpg" 
    onerror='this.onerror = null; this.src="./oops.gif"' /> 

Note thiết onerror để null trong xử lý để trình duyệt không chết nếu oops.gif không thể được nạp đối với một số lý do.

+0

Ồ, tôi quên mất onerror. Điều này có thể dễ dàng hơn, nhưng giải pháp tôi đã đăng bên dưới cho phép đặt trước hình ảnh và kiểm tra tính khả dụng của chúng trước khi chúng được hiển thị. Phụ thuộc vào những gì bạn cần ... – moxn

+0

Tuyệt vời! Yêu thích nó khi tôi học những thủ đoạn mới như thế này. Tôi sẽ đi đến một số pokemon jiggery jQuery. – MikeMurko

+0

Vấn đề ở đây là thời gian mà hình ảnh được coi là không có sẵn! Có thể mất nhiều thời gian hoạt động tải trình duyệt hoạt động cho đến khi nó gọi sự kiện 'onerror'. – SaidbakR

2

Cố gắng tận dụng thuộc tính Image.complete.

var img = new Image(w,h) 
img.src = "http://..."; 

Bây giờ kiểm tra định kỳ nếu img.complete là đúng và gọi một số cơ chế dự phòng shuold nó vẫn được false sau n giây.