• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ohmyga
V2EX  ›  程序员

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

  •  
  •   ohmyga · Jul 15, 2015 · 3626 views
    This topic created in 3990 days ago, the information mentioned may be changed or developed.

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

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

    js监听键盘事件吧 ctrl+F5的时候ajax请求重新生成然后跳转
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3248 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 00:34 · PVG 08:34 · LAX 17:34 · JFK 20:34
    ♥ Do have faith in what you're doing.