javascript - image.complete 总是返回真

标签 javascript jquery

我希望在加载图像且不在浏览器缓存中时执行一些逻辑。问题是,使用 jQuery 中的 complete bool 值总是返回 true —— 即使图像不在浏览器缓存中。代码片段:

var elem = $('.my-img');
console.log(elem.prop('complete'));

这在 Chrome 和 Firefox 的控制台中始终记录为真。是否有任何解决方法,或者我是否错误地使用了该值?

最佳答案

...when an image is loaded AND it isn't in the browser cache...

据我所知,没有办法检查图像是否在缓存中。 complete 并没有告诉你这些;它告诉您第一部分(主要是)img 元素可用(例如,图像已加载,这意味着它可能在缓存中)或已损坏(或 a couple of other things )。


这可能是一个切线:

您的代码正在检查与 .my-img 选择器匹配的 first img 的 complete 标志。显然该图像是完整的(损坏或已加载)。如果你想检查匹配该选择器的所有图像,你需要某种循环,也许是map:

var flags = $(".my-img").map(function() { return this.complete; }).get();

当然,该数组中的任何 false 标志都可能在您获取它的那一刻就过时了,因为图像是通过 JavaScript 代码带外加载的。

关于javascript - image.complete 总是返回真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47908277/

相关文章:

javascript - Kik 机器人 | Uncaught ReferenceError : require is not defined

javascript - 通过js从php页面更改图像的src

javascript - 无法缩小此文件(node_modules)中的代码

jquery - 了解 iMask 设置和符号

c# - 从 Controller 方法获取数组,将其传递给 Javascript/JQuery

javascript - 将数组保存到本地存储

javascript - Flash AS3 关闭浏览器窗口

jquery - 在 Rails 项目中找不到文件 'jquery'

php - 解析自然语言

jquery - 使用 jQuery 的图像像素颜色选择器