3
在jQuery文档的负载事件http://api.jquery.com/load-event/,它说 Can cease to fire for images that already live in the browser's cache
。是否有更多信息可用,例如它影响哪些浏览器以及在什么情况下?跨浏览器图像onload事件处理
在jQuery文档的负载事件http://api.jquery.com/load-event/,它说 Can cease to fire for images that already live in the browser's cache
。是否有更多信息可用,例如它影响哪些浏览器以及在什么情况下?跨浏览器图像onload事件处理
我不确定哪些浏览器受到影响,但很容易检查。
var img = new Image();
img.src = "foo.jpg";
if (img.complete || img.readyState === 4) {
// image is cached
doneCallback();
}
else {
$(img).on('load',doneCallback);
}
UPDATE
如果你身边更改代码,这将始终如一地火在所有浏览器加载事件。
var img = new Image();
$(img).load(doneCallback);
img.src = "foo.jpg";
如果浏览器具有缓存的图像,它会在设置src之后直接加载(不需要首先执行加载检查)吗? – ddlshack
是的,但它可能不会触发负载回调。这就是为什么我们首先检查它是否已经完成加载。如果它已经完成加载,加载事件可能不会触发,所以我们不绑定它。 –
如果在更改图像src之前加载事件被绑定,那么怎么办?这是否会导致加载事件始终触发? – ddlshack