我做了一个类似Twitter的网络应用程序。用户可以在查看彼此的页面时互相关注。以下是对正在发生的事情的高级描述:
那么有没有办法让浏览器中的页面到期,以便在按下后退按钮时拉出一个新的副本?理想情况下,只有当用户跟随另一个用户时我才能这样做,否则页面的缓存版本将是完美的。
我希望问题解释清楚,如果我能提供更多信息,请告诉我。我正在使用基于java / servlets的服务器(谷歌应用引擎)。
谢谢
答案 0 :(得分:2)
您需要指示Web浏览器不要在历史记录中缓存页面,这样当您在历史记录中导航时,它会被迫向服务器发送一个全新的请求。在JSP / Servlet中,这可以通过将以下标题添加到您要禁用缓存的页面的响应来完成:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
这可以在转发到JSP的Servlet
或拦截JSP请求的Filter
中完成。
答案 1 :(得分:1)
BalusC的回答听起来不错,但是页面中的脚本怎么做呢? (JQuery假设)
<script>
function updateFromServer()
{
// ajax get update from server GO!
}
$(document).ready( function() {
// on page load, get an update from the server
updateFromServer() ;
}) ;
// also check for update from server every 2 sec
window.setInterval( 'updateFromServer();', 2000 ) ;
</script>