我看过这个问题,我必须说它不适合我目前的问题/审讯。
设想:
用户成功登录(通过 Ajax 调用)后,他们被重定向(document.location.href
)到 /app,基本 HTML 与 CSS 和 JS 文件一起发送到该处。
问题:
我目前将版本号放在我缩小的 javascript 和 css 文件名上,例如 appname-2.3.3.js 并添加了一个查询字符串版本号以确保它在新版本上得到刷新:
<script src="/js/app/appname-2.3.3-min.js?1207040740" language="javascript" type="text/javascript"></script>
当我推送新版本时,在新登录后,即使文件名和查询字符串数字发生变化,浏览器也会缓存最后一个版本。用户需要进行整页刷新 CTRL+F5 来获取新的静态文件。
问题:
a) 确保每个新登录用户都有正确版本的最佳方法是什么?我的猜测是 /app HTML 页面是缓存的,也许我需要在登录后重定向时将查询字符串值放在那里。但这给我带来了一个问题,即调用登录方法的 javascript 文件必须是“正确的”版本等,等等。
我应该在我的控制器中指定一个 HTTP 标头来告诉浏览器不要缓存 /app 页面吗?这是否意味着没有从该页面缓存静态文件?
几乎每周左右都有新的更新,仍然需要缓存。
b) 从您的角度来看,提醒已登录用户新版本已更新并且他们应该刷新页面的良好用户体验方式是什么?从用户的角度来看,它是“可接受的”吗?
作为参考,该应用程序基于 ASP.NET MVC 3 构建。
感谢您的时间/投入