2013-04-11 113 views
7

我似乎有相反的问题,从最让网友。我有一个很少更改的静态页面,我希望浏览器在用户快速返回时不要重新加载该页面。我一直无法找到任何简单的规则列表,当浏览器在后退导航上重新加载时,以及什么时候没有。从重新加载页面防止浏览器当用户点击后退

如果它的确与众不同,我的URL有查询字符串,并使用https://协议供应。

+0

为什么只在后退导航?如果用户从历史记录中加载此页面并且没有更新?它不应该重新加载。 HTTP 304没有修改状态码是你需要的:http://www.w3.org/Protocols/HTTP/HTRESP.html – user4035 2013-04-11 20:46:18

+0

这只是我不太关心的事情。我很好,只解决了背向导航的情况,因为许多用户点击一个链接,如果他们没有找到他们需要的东西,就快速回去。在这一点上有额外的服务器负载是我想要解决的问题。 – levik 2013-04-11 23:37:44

+0

您是否正在使用php脚本并想发送未修改的HTTP 304? – user4035 2013-04-12 07:19:19

回答

10

你不需要知道后退按钮已被使用。只要告诉浏览器使用缓存控制标头来缓存你的页面。你会看到很多的来自谷歌的例子 - http cache control headers

具体来说,看看这些元标签:

<meta http-equiv="CACHE-CONTROL" content="..." /> 
<meta http-equiv="EXPIRES" content="..." /> 

编辑:

下面是从谷歌搜索结果中的一个链接。我认为它能够很好地解释这些头文件的工作原理。 Increasing Application Performance with HTTP Cache Headers

有了这些标题,您可以指定多久缓存页面; 10分钟,30分钟,小时,天等

+0

我想我正在寻找的是一个资源,它将列出不同浏览器在不同情况下如何承认这些标头。例如,我记得过去查询字符串的处理方式与某些浏览器的处理方式不同。 – levik 2013-04-11 23:34:00

+0

这就是为什么我将Google链接包含在内的原因。网上有大量关于此的信息。我从搜索中添加了一个资源给我的答案。它很好地解释了这个例子。 – 2013-04-12 12:09:33

0

您是否尝试过onpageshow事件的身体标记?

<script type="text/javascript"> 
    function caller() 
    { 
     return false; 
    } 
</script> 
</head> 

<body onpageshow="caller();"> 
</body> 

适用于大多数情况。

相关问题