三大快取技術

2021-08-14 00:09:01 字數 1624 閱讀 2439

1.瀏覽器快取、程式快取、ob快取

瀏覽器接收伺服器返回的資料,每達到一定的量,就顯示到頁面上,如果最後一次沒達到量,也顯示到頁面

每次傳送php請求,php每一次的輸出都會先存到程式快取中,當整個php程式執行結束,在返回給apache,最後返回到瀏覽器

程式快取是語言底層實現的,人為不可操控

每次返送php請求,如果開啟ob緩衝,php每一次的輸出都會先存到ob緩衝中,當以下情況發生時,資料會從ob緩衝送到程式快取整個php程式執行結束

ob緩衝空間被佔滿

開發者手動操作

2.常用ob緩衝函式

ob_start()  開啟ob緩衝

ob_get_clean() 獲取然後清除ob緩衝區內容

ob_get_contents() 獲取ob緩衝內容

ob_get_flush() 獲取並送出ob緩衝內容,送到程式快取後,清空ob緩衝空間

ob_clean() 清空ob緩衝

ob_end_clean() 清空並關閉ob緩衝

ob_end_flush() 送出並關閉ob緩衝

3.使用ob快取實現真靜態真靜態:將動態頁面的輸出內容,儲存到靜態html頁面。

使用ob快取,可以獲取頁面的輸出內容,

使用file_put_contents函式將字串寫入檔案。

比如以前臺首頁為例:修改home分組index控制器index方法

生成的靜態檔案

靜態檔案訪問路徑:

如果資料庫的資料發生變化,需要重新生成靜態頁面。

操作思路:方法一:在後台設定刪除靜態檔案功能, 可以實時更新,但是需要手動刪除,(需要手動刪除靜態檔案,所以其實也不是嚴格實時)

方法二:設定真靜態檔案生命週期自動更新靜態檔案,但是有延遲

如果要嚴格遵循實時更新,要使用偽靜態

4.真靜態快取生命週期

真靜態檔案的生命週期(有效期)

當前時間 - 檔案生成時間 < 生命週期

通過fliemtime函式獲取檔案上次被寫入的時間

修改home分組index控制器index方法,使用靜態化的html頁面之前,先進行有效期判斷。

php9大快取技術

1 全頁面靜態化快取 也就是將頁面全部生成html靜態頁面,使用者訪問時直接訪問的靜態頁面,而不會去走php伺服器解析的流程。此種方式,在cms系統中比較常見,比如dedecms 一種比較常用的實現方式是用輸出快取 ob start 要執行的 content ob get contents 將快取內...

PHP中9大快取技術總結

1 全頁面靜態化快取 也就是將頁面全部生成html靜態頁面,使用者訪問時直接訪問的靜態頁面,而不會去走php伺服器解析的流程。此種方式,在cms系統中比較常見,比如dedecms 一種比較常用的實現方式是用輸出快取 ob start 要執行的 content ob get contents 將快取內...

PHP中9大快取技術總結

也就是將頁面全部生成html靜態頁面,使用者訪問時直接訪問的靜態頁面,而不會去走php伺服器解析的流程。此種方式,在cms系統中比較常見,比如dedecms 一種比較常用的實現方式是用輸出快取 ob start 要執行的 content ob get contents 將快取內容寫入html檔案 o...