是否可以使用javascript控制浏览器是否转到服务器以获取图像或浏览器缓存?我是否可以强制浏览器在使用缓存图像时进行服务器调用?我知道我可以简单地将查询字符串附加到我的图片网址,但是,如果我理解正确,这是有效的,因为浏览器将其视为新图像。我希望在缓存中替换旧图像。
答案 0 :(得分:1)
您可以在页面上使用元标记进行缓存控制,设置为“no-cache”,如下所示:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
和
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
您还可以将页面设置为过去的“过期”,理论上这将导致浏览器检查最新版本:
<META HTTP-EQUIV="EXPIRES" value="some date in the past" />
请注意,“过去的某个日期”必须是RFC 1123 format中的GMT。
注意,您可以在HTTP标头中发送这些内容:See Here
希望这有帮助。
答案 1 :(得分:0)
您无法使用标准img
标记执行此类操作。您可以为映像创建XMLHttpRequest并设置if-modified-since
标头。这应该替换缓存中的旧图像:
var url = "http://www.mysite.com/images/myimage.png";
var xhr = new XMLHttpRequest(); // or x-browser compat function
xhr.open("GET", url, true);
xhr.setRequestHeader("If-modified-since", "Thu Jan 1 00:00:00 UTC 1970");
xhr.onreadystatechange = function ()
{
if (xhr.readyState == 4 && xhr.status == 200)
document.getElementById("myImg").src = url;
}
xhr.send();