编辑和重新显示内容时强制刷新缓存

3
我正在使用asp.net mvc,并且有一个视图用于显示一个项目和一个视图用于允许编辑该项目。当用户提交编辑后的项目时,它会将其重定向到该项目的视图。由于该项目视图被缓存,因此重定向后未反映更改。也可以直接编辑查看项目页面,然后使用JavaScript提交并刷新页面。
我注意到stackoverflow在编辑项目时不知何故可以使其正常工作,将您重定向到具有反映更改的页面。他们的缓存设置为public,max-age=120,因此我很惊讶浏览器没有拉取本地副本而不是反映更改的版本...
无论如何,在这些情况下是否有一种强制刷新缓存的方法?我希望不必附加随机查询字符串值,但如果没有其他方法,那就只能这样做了。
1个回答

1

1
这个问题是关于显示该项的视图吗?我们肯定希望尽可能缓存该页面,但问题是如果它已经被缓存并且用户更新了该项,它仍然会被缓存。这个解决方案需要完全禁用缓存,而这对于我们的查看项目页面来说不是一个选项。 - jjxtra
听起来你需要确保页面显示的是正确的数据,而不是旧数据。如果你保存了数据,我猜你的屏幕上仍然显示着旧数据。如果按下ctrl F5会发生什么? - Greg Randall
Ctrl-F5不会刷新数据,它只会带回缓存的服务器端副本。如果我将缓存更改为私有,则Ctrl-F5会更新到最新的数据。 - jjxtra
Control F5强制浏览器不使用缓存,从而显示您放入页面的数据。您可以使用建议的方法关闭缓存并查看页面返回的内容。 - Greg Randall
你能详细解释一下meta标签的含义吗?我猜除非用户从编辑页面重定向,否则我不需要它们,但在这种情况下,浏览器只会拉取本地缓存副本。我将清除服务器端缓存,然后尝试使用禁用缓存的视图URL进行重定向,看看是否有效... - jjxtra
是的,我的意思是不要缓存任何东西,看看你的结果。这样你就可以知道是缓存错误还是代码错误。 - Greg Randall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接