如何在单页应用程序中重新获取图像?
How to refetch images in a single page app?
我做了很多研究并尝试了很多方法来解决我的问题,但要么我做错了什么,要么我就是不知道该怎么做。
我有这个显示图像缩略图的 JS 单页应用程序。我将图像响应 header 设置为使用 etags,因为每个缩略图都可能随时间变化。
发生的事情是这样的:
1. 我加载页面并看到有一个 GET 调用来检索带有这些响应 headers 的缩略图(设置了 etag,cache-control 和 no-cache,过期日期设置为一天过去):
date: Wed, 25 Mar 2015 13:24:56 GMT
cache-control: private, no-cache, max-age=0
expires: Tue Mar 24 2015 09:24:56 GMT-0400 (EDT)
etag: 1427215131000
- 我转到页面的另一部分(页面上没有显示缩略图)。
- 我回到缩略图视图,我看到了缩略图图像,但没有重新提取(没有调用 GET 来检索缩略图)。
我需要进行此 GET 调用以验证服务器上的图像是否已更改(基于 etag)。顺便说一句,我也关闭了浏览器中的缓存,但我仍然没有看到任何 GET 调用。
有人知道如何解决这个问题吗?
非常感谢!
我用了socket.io。每当后端更改图像时,都会通过 socket.io 发送更新消息,通知前端特定图像已更改,需要重新获取。
前端将确保下次调用此图像时会在调用末尾添加时间戳,以便对服务器进行重新获取调用。
例如:
- 用户来到页面,图像 URL 是
http://www.example.com/images/logo.png
。
- 用户在网站上导航,图像 URL 仍然是
http://www.example.com/images/logo.png
。
- 后台图片变化:事件发送到前端。
- 用户浏览单个 Web 应用程序并且必须再次显示徽标图像。图片 URL 已更改为
http://www.example.com/images/logo.png?_=1427980814941
。
- 用户在网站上导航,图片 URL 现在还在
http://www.example.com/images/logo.png?_=1427980814941
。
- 如果后端有其他变化,我们将返回到第 3 步。
我做了很多研究并尝试了很多方法来解决我的问题,但要么我做错了什么,要么我就是不知道该怎么做。
我有这个显示图像缩略图的 JS 单页应用程序。我将图像响应 header 设置为使用 etags,因为每个缩略图都可能随时间变化。
发生的事情是这样的: 1. 我加载页面并看到有一个 GET 调用来检索带有这些响应 headers 的缩略图(设置了 etag,cache-control 和 no-cache,过期日期设置为一天过去):
date: Wed, 25 Mar 2015 13:24:56 GMT
cache-control: private, no-cache, max-age=0
expires: Tue Mar 24 2015 09:24:56 GMT-0400 (EDT)
etag: 1427215131000
- 我转到页面的另一部分(页面上没有显示缩略图)。
- 我回到缩略图视图,我看到了缩略图图像,但没有重新提取(没有调用 GET 来检索缩略图)。
我需要进行此 GET 调用以验证服务器上的图像是否已更改(基于 etag)。顺便说一句,我也关闭了浏览器中的缓存,但我仍然没有看到任何 GET 调用。
有人知道如何解决这个问题吗?
非常感谢!
我用了socket.io。每当后端更改图像时,都会通过 socket.io 发送更新消息,通知前端特定图像已更改,需要重新获取。
前端将确保下次调用此图像时会在调用末尾添加时间戳,以便对服务器进行重新获取调用。
例如:
- 用户来到页面,图像 URL 是
http://www.example.com/images/logo.png
。 - 用户在网站上导航,图像 URL 仍然是
http://www.example.com/images/logo.png
。 - 后台图片变化:事件发送到前端。
- 用户浏览单个 Web 应用程序并且必须再次显示徽标图像。图片 URL 已更改为
http://www.example.com/images/logo.png?_=1427980814941
。 - 用户在网站上导航,图片 URL 现在还在
http://www.example.com/images/logo.png?_=1427980814941
。 - 如果后端有其他变化,我们将返回到第 3 步。