V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ohmyga
V2EX  ›  程序员

php 中如何判断浏览器是否操作的是强行刷新

  •  
  •   ohmyga · 2015-07-15 21:42:06 +08:00 · 2832 次点击
    这是一个创建于 3422 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想用php做生成静态页面,按ctrl+f5强制刷新浏览器然后重新生成静态页面,3Q。

    12 条回复    2015-07-16 10:27:14 +08:00
    yangqi
        1
    yangqi  
       2015-07-15 21:48:51 +08:00
    php生成静态页是根据服务器端的状态,前端刷新后端为什么要重新生成,没必要啊
    geeglo
        2
    geeglo  
       2015-07-15 21:52:29 +08:00
    还不如写一个cookie来的实在。
    learnshare
        3
    learnshare  
       2015-07-15 21:55:13 +08:00
    前端访问后端是无状态的,F5/Ctrl+F5 没区别。
    不过你可以在页面里监听键盘事件,来处理这样的特殊刷新。然而对非键盘触发的刷新无效
    sumhat
        4
    sumhat  
       2015-07-15 22:07:14 +08:00
    Chrome 的 Ctrl F5 会发出 cache-control:no-cache 的 header
    dalaomj
        5
    dalaomj  
       2015-07-15 22:09:53 +08:00
    如果发出的请求头信息有 If-Modified-Since,不重新生成。如果没有,重新生成。
    txlty
        6
    txlty  
       2015-07-15 22:20:37 +08:00
    foreach ($_SERVER as $key => $value) {
    if ('HTTP_' == substr($key, 0, 5)) {
    echo $key ." => ".$value."<br>";
    }
    }
    各种浏览器,刷着玩吧。
    Septembers
        7
    Septembers  
       2015-07-15 22:25:40 +08:00
    强制刷新一般有Pragma: no-cache标头
    bdbai
        8
    bdbai  
       2015-07-16 00:24:49 +08:00 via iPhone
    @txlty 不能直接var_dump出来?
    txlty
        9
    txlty  
       2015-07-16 00:27:52 +08:00
    @bdbai 干扰条目太多。
    laoyuan
        10
    laoyuan  
       2015-07-16 09:16:02 +08:00
    @txlty 先asort( ) 排下序
    jugelizi
        11
    jugelizi  
       2015-07-16 10:24:11 +08:00
    HTTP_CACHE_CONTROL
    jugelizi
        12
    jugelizi  
       2015-07-16 10:27:14 +08:00
    不过楼主说的有点矛盾啊,你是给用户php生成的纯静态页面的话没法做到强制刷新自动重新生成的啊

    js监听键盘事件吧 ctrl+F5的时候ajax请求重新生成然后跳转
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5973 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.