在没有Javascript的情况下检测用户按下后退按钮?

时间:2011-03-19 05:28:33

标签: http http-referer

我知道有很多方法可以判断用户是否使用Javascript按下了后退按钮,但有没有办法在不诉诸Javascript的情况下判断?是否有一个解决方案,只涉及查看引用URL?

2 个答案:

答案 0 :(得分:4)

没有javascript no。

问题是后退按钮不能保证你获得服务器命中。它可以缓存页面客户端,即使它确实命中了服务器(加载页面),然后它会从初始命中获得请求,而不是来自您刚刚访问的页面。后退按钮不会向请求添加“引用”信息。它只是回到你做的最后一件事而没有发送你刚才所在的细节。

您需要处理此客户端。

答案 1 :(得分:1)

是的,有可能。这有两个部分 -

  1. 每个网址都应包含唯一标记。在服务器端,您可以跟踪当前和过去的令牌。当请求出现时,如果令牌与过去的令牌匹配,则后退按钮被点击。如果它等于当前令牌,则正常处理请求。否则请求失败。
  2. 现在,该页面可能已被缓存,您的服务器可能无法看到该请求。所以你必须采取措施来打败浏览器缓存。设置以下http标头应强制浏览器发出请求 -
  3. 
        Cache-Control : no-Cache
        Pragma : No-Cache
        Expires : Thu, 01 Jan 1970 00:00:00 GMT
    
    

    因为它可能并不意味着你应该使用它。 Backbutton是网络的一项基本技术,打破它是可用性差。