【发布时间】:2011-12-12 07:10:16
【问题描述】:
我一直在尝试找出外部图像是否用js缓存在浏览器上,这是我到目前为止的代码:
<html>
<head></head>
<body>
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
function cached( url ) {
$("#imgx").attr({"src":url});
if(document.getElementById("imgx").complete) {
return true;
} else {
if( document.getElementById("imgx").width > 0 ) return true;
}
return false;
}
</script>
<img id="imgx" src="" />
<script>
$(document).ready(function(){
alert(cached("http://www.google.com/images/srpr/nav_logo80.png"));
});
</script>
</body>
</html>
它在 firefox 上完美运行,但在 chrome 上总是返回 false。
有人知道如何让它与 chrome 一起工作吗?
【问题讨论】:
-
资产是否被缓存为什么重要? ://
-
W3C 标准没有任何此类 API,因此您可能会使用一些特定于浏览器的 hack,这不是一件好事
-
此外,即使图像被缓存,加载图像仍然很可能是异步的,浏览器不太可能在执行下一行 JavaScript 之前完成图像的加载和显示。
标签: javascript jquery image cross-browser image-caching