te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>php - How to make Firefox, NOT cache my webpage - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - How to make Firefox, NOT cache my webpage - Stack Overflow

programmeradmin4浏览0评论

I have this page, let's call it index.php

index.php has a list of users and a remove user button. That will take them to removeUser.php

And the last line of removeUser.php is to go back to index.php

But in Firefox, it still looks the same, a normal user won't know how to do a hard-refresh or clear the cache every time the page loads manually.

I have tried

CACHE-CONTROL NO-CACHE,NO-STORE

and also

PRAGMA NO-CACHE,NO-STORE

I even tried setting EXPIRY 0 in the META tags, none of these help. Although it all works perfectly in Chrome and other browsers, it's just Firefox that has this problem.

These are my headers, requested by @alex

http://localhost/xChange/home.php

GET /xChange/home.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost/xChange/home.php
Cookie: laobgcidne=yes; [email protected]
Cache-Control: max-age=0

HTTP/1.1 200 OK
Date: Fri, 10 Dec 2010 08:28:25 GMT
Server: Apache/2.2.11 (Win32) PHP/5.3.0
X-Powered-By: PHP/5.3.0
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Content-Length: 6130
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

I have this page, let's call it index.php

index.php has a list of users and a remove user button. That will take them to removeUser.php

And the last line of removeUser.php is to go back to index.php

But in Firefox, it still looks the same, a normal user won't know how to do a hard-refresh or clear the cache every time the page loads manually.

I have tried

CACHE-CONTROL NO-CACHE,NO-STORE

and also

PRAGMA NO-CACHE,NO-STORE

I even tried setting EXPIRY 0 in the META tags, none of these help. Although it all works perfectly in Chrome and other browsers, it's just Firefox that has this problem.

These are my headers, requested by @alex

http://localhost/xChange/home.php

GET /xChange/home.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost/xChange/home.php
Cookie: laobgcidne=yes; [email protected]
Cache-Control: max-age=0

HTTP/1.1 200 OK
Date: Fri, 10 Dec 2010 08:28:25 GMT
Server: Apache/2.2.11 (Win32) PHP/5.3.0
X-Powered-By: PHP/5.3.0
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Content-Length: 6130
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
Share Improve this question edited Dec 18, 2015 at 13:20 George Netu 2,8326 gold badges30 silver badges51 bronze badges asked Dec 10, 2010 at 5:11 Nareshkumar RaoNareshkumar Rao 1052 silver badges9 bronze badges 1
  • The problem could be that you still have item in cache. clear cache and try again? P.S: you don't have etag, last-modified headers also! – Alfred Commented Dec 10, 2010 at 20:26
Add a ment  | 

3 Answers 3

Reset to default 12

Send a expires header for a date in the past.

Example

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

Source.

Update

Your headers look pretty good. I don't know what Firefox is doing.

You could do this on the link, to make sure it always downloads a fresh copy.

<?php $link = 'home.php'; ?>
<a href="<?php echo $link . '?m=' . filemtime($link); ?>">Home</a>
  • First maybe your curl --head index.php summary could help us.

  • This explains caching in full detail: http://www.mozilla/projects/netlib/http/http-caching-faq.html.

  • use http://nl.php/manual/en/function.header.php to set headers.

  • Also have look at Etag, If-None-Match, Last-Modified, if-modified-since

  • Or if it really does not work you could timestamp your urls

    index.php?<?= echo time(); ?>

Simply Press Ctrl+F5 for hard refresh on your browser page it removes Cache of current page and load the newly Edited Page

发布评论

评论列表(0)

  1. 暂无评论