【问题标题】:Prevent image to be cached with javascript防止使用 javascript 缓存图像
【发布时间】:2015-11-06 06:42:26
【问题描述】:

最近我试图确保我网站上的一些图片没有被浏览器缓存。

我遇到了几个问题,例如
Preventing Images being cached in the browser
How to prevent browser image caching?
How to prevent browsers from caching an image?

但不久之后,他们提供的解决方案就不再为我工作了。
我的网站上有几张图片,但只有一张我不想缓存。

我用<img src="/img/img.jpg?1275332" />
其中数字是当前时间戳。

还有其他方法可以防止浏览器缓存吗?
有没有人知道为什么这不起作用(不再)?

编辑:
我不想缓存的图像不是静态图像。
当用户改变他的一张图像时,只需要更新改变的图像。这就是为什么我尝试在更改的图像之后添加时间戳。

该应用程序也是一个 SPA,因此不会有任何页面刷新。

【问题讨论】:

    标签: javascript image caching


    【解决方案1】:

    您可以使用application-cache 清单文件。为此,您需要以下列方式将其添加到您的 html 页面:

    <!doctype html>
    <html manifest="myapp.appcache">
    <head>...</head>
    <body>...</body>
    

    在您的应用程序缓存清单中指定网络部分中的图像。 NETWORK 部分用于指定永远不能缓存的 url,并且应该始终从网络中检索。

    CACHE MANIFEST
    
    CACHE:
    #html page, scripts etc you want to cache
    
    FALLBACK:
    #fallback resource if cached version is not available.
    
    NETWORK:
    #image path you don't want to cache
    

    通过将事件处理程序附加到window.applicationCache 事件,例如onupdate、oncached、ondownloading、onprogress、onobsolete,可以实现对整个过程的更多控制

    希望这能解决您的问题。

    【讨论】:

    • 这看起来是一个很好的解决方案,但有一个问题,列表中的所有图像都来自 /img/thumb/。因此,如果我使用NETWORK: apirul/img/thumb/,则不会缓存任何图像。但是为 .appcache +1 因为我认为它可以帮助其他人。
    • 我知道我可以使用文件名。等等,我将扩展我的问题以解释确切的情况。
    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 2013-12-18
    • 2014-04-21
    • 2013-04-17
    • 2014-03-01
    • 2011-11-07
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多