国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > PHP > 正文

php開發(fā)指南:緩存詳解

2024-05-04 21:57:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文章來(lái)介紹一下關(guān)于php 緩存一些基本常識(shí),有需要的朋友可參考一上.

我們可以在HTML頁(yè)面利用meta tag和PHP程序中通過header來(lái)控制.例如:

實(shí)例代碼如下:

  1. <?php 
  2.     header('Cache-Control:max-age=86400, must-revalidate');//24小時(shí) 
  3.     header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT'); 
  4.     header('Expires:'.gmdate('D, d M Y H:i:s', time() + '86400').'GMT'); 
  5.     echo '我不刷新';再寫個(gè)HTML文件c.htm:<html> 
  6.     <body> 
  7.         haha,<a href=cache.php>go</a> 
  8.     </body> 
  9. </html> 

我們請(qǐng)求127.1/c.htm,點(diǎn)擊鏈接,然后利用瀏覽器的回退按鈕,返回c.htm,再點(diǎn)擊鏈接,如下圖左所示,我們發(fā)現(xiàn),當(dāng)添加了緩存指令后,我們無(wú)論如何來(lái)回后退和點(diǎn)擊鏈接,下面的網(wǎng)絡(luò)請(qǐng)求URL這一條始終為灰色,表示瀏覽器并沒有發(fā)起實(shí)際的網(wǎng)絡(luò)請(qǐng)求,而是直接調(diào)用了存儲(chǔ)在用戶電腦中的緩存頁(yè),除非緩存時(shí)間過期,在這期間,即使是實(shí)際內(nèi)容改變了,瀏覽器也不會(huì)去重新讀取我們?cè)诜?wù)器上的資源.你可以把echo的那一句修改后,再點(diǎn)擊,會(huì)發(fā)現(xiàn)網(wǎng)絡(luò)請(qǐng)求仍然為灰色.在這種情況下,只有以下三種情況瀏覽器才會(huì)去更新緩存:

(1)緩存到期

(2)緩存被清除;

(3)F5或 ctrl+F5強(qiáng)制刷新.(這一點(diǎn)各種瀏覽器處理可能存在差異,我的測(cè)試環(huán)境是firefox 4)  

當(dāng)我們屏蔽上面的header指令或者改用如下代碼時(shí)//告訴客戶端瀏覽器不使用緩存,HTTP 1.1 協(xié)議

實(shí)例代碼如下:

  1. header("Cache-Control: no-cache, must-revalidate"); 
  2. //告訴客戶端瀏覽器不使用緩存,兼容HTTP 1.0 協(xié)議 

實(shí)例代碼如下:

  1. header("Pragma: no-cache");  
  2.  

c1.pngc2.png

瀏覽器就會(huì)在每次請(qǐng)求時(shí)都去服務(wù)器上讀取資源.如下面右邊的圖所示.    在這里,我們可以大致了解下瀏覽器對(duì)頁(yè)面的緩存處理.很容易,我們就能聯(lián)想出其使用場(chǎng)景,有時(shí)候我們需要它緩存,有時(shí)候又不需要,你可以根據(jù)場(chǎng)景來(lái)使用.不過,瀏覽器的緩存作用是很微小的,但能省一點(diǎn)算一點(diǎn).有時(shí)候,瀏覽器的緩存是很厲害的,需要我們強(qiáng)制刷新才能見效,比如JS文件,有時(shí)你更改了,即使刷新也是不會(huì)更改的.另,除了可以在代碼中設(shè)置頁(yè)面緩存,也可以在APACHE等服務(wù)器上配置,特別是靜態(tài)資源,加上緩存可以有效減少不必要的請(qǐng)求.

又有時(shí),我們通常會(huì)看到<script src="link.js?d=1923454332"></script>這樣的代碼,在JS文件后加上問號(hào)的那一串并沒有實(shí)際意義,只是為了避免JS被緩存,給JS文件加一個(gè)版本號(hào),通常用時(shí)間戳做標(biāo)記.這樣瀏覽器就不會(huì)緩存我們的JS文件了.

既然前端頁(yè)面緩存的目的是為了減少請(qǐng)求,那我馬上想到了另一個(gè)思路,那就是壓縮數(shù)據(jù).通過使用一些工具,可以對(duì)CSS和JS代碼進(jìn)行壓縮.比如jquery的使用版就是經(jīng)過壓縮的,往往這個(gè)壓縮比例還很大.通常使用jsmin,jspacker進(jìn)行壓縮,具體工具可以到網(wǎng)上搜索下.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆元县| 库车县| 岳阳县| 赣州市| 南乐县| 曲水县| 玉林市| 大足县| 衡水市| 浦城县| 全南县| 南城县| 砚山县| 楚雄市| 秭归县| 建水县| 满城县| 隆安县| 汝城县| 富源县| 怀化市| 华容县| 茌平县| 滁州市| 特克斯县| 青田县| 尚义县| 乌鲁木齐市| 辉南县| 宜兰市| 衡阳县| 新巴尔虎右旗| 定南县| 邳州市| 吉水县| 四平市| 佳木斯市| 阿拉善左旗| 中牟县| 阿合奇县| 浮山县|