我想在加载图像时做一些逻辑并且它不在浏览器缓存中。问题是,使用jQuery中的complete
boolean总是返回true - 即使图像不在浏览器缓存中。代码段:
var elem = $('.my-img');
console.log(elem.prop('complete'));
这总是在Chrome和Firefox的控制台中都记录下来。有没有变通办法,或者我使用的值不正确?
...加载图像时,它不在浏览器缓存中...
据我所知,没有办法检查图像是否在缓存中。 complete
没有告诉你;它告诉你第一部分(大部分),img
元素是可用的(例如,图像已被加载,这意味着它可能在缓存中)或被破坏(或a couple of other things)。
这可能是一个切线:
你的代码正在检查与complete
选择器匹配的第一个img的.my-img
标志。显然,图像已完成(已损坏或已加载)。如果你想检查匹配那个选择器的所有图像,你需要一个某种循环,也许是map
:
var flags = $(".my-img").map(function() { return this.complete; }).get();
当然,当你获得它时,该数组中的任何false
标志都可能过时,因为图像是使用JavaScript代码加载到带外的。