我看看this question,我必须说它不符合我目前的问题/审讯。一页JavaScript应用程序和缓存静态资源
方案:用户成功登录(通过Ajax调用),他们将被重定向(document.location.href
)到/应用程序,其中基本HTML与CSS和JS文件一起发送
后。
问题:
我目前把版本号上类似应用程序的名字,2.3.3.js我的精缩JavaScript和CSS文件名,并添加了查询字符串的版本号,以确保它得到新版本前刷新:
<script src="/js/app/appname-2.3.3-min.js?1207040740" language="javascript" type="text/javascript"></script>
当我推一个新的版本,新的登录后,即使文件名和查询字符串的数字变化,浏览器保持最新版本缓存。用户需要刷新整个页面CTRL + F5才能获得新的静态文件。
问:
一)什么是保证每一个新的登录用户的最佳途径有正确的版本?我的猜测是/ app的HTML页面是缓存的,也许我需要在登录后重定向时将查询字符串值。但是,这带来了问题,即调用登录方法的JavaScript文件必须是“正确”的版本等,等等。
我应该在控制器中指示一个HTTP头,告诉浏览器不要缓存/应用页面?这是否意味着没有从该页面缓存静态文件?
几乎每周都有新的更新,仍然需要缓存。
b)从您的角度来看,如果警告已登录的用户已更新新版本并且应刷新其页面,那么用户体验的好方法是什么?从用户的视角来看,它是“可接受的”吗?
以供参考,该应用程序是建立在ASP.NET MVC您的时间/输入
浏览器的开发工具有一个“网络”选项卡,您可以在其中检查为每个网页请求哪些资源。如果查询字符串包含一个新的号码,浏览器应该检索新的更新文件,而不是使用缓存的一个...(顺便说一句,堆栈溢出利用这一技术,太) –
我将与Net标签一看。但是,这是我的观点,假设pagea.html,即使在html标签上有新的数字,浏览器缓存pagea.html也是如此,所以即使你上传了版本号改变的新版本,pagea.html仍然是与前一个号码缓存? –