1.瀏覽器快取、程式快取、ob快取
瀏覽器接收伺服器返回的資料,每達到一定的量,就顯示到頁面上,如果最後一次沒達到量,也顯示到頁面
每次傳送php請求,php每一次的輸出都會先存到程式快取中,當整個php程式執行結束,在返回給apache,最後返回到瀏覽器程式快取是語言底層實現的,人為不可操控!
每次返送php請求,如果開啟ob緩衝,php每一次的輸出都會先存到ob緩衝中,當以下情況發生時,資料會從ob緩衝送到程式快取整個php程式執行結束ob緩衝空間被佔滿
開發者手動操作
2.常用ob緩衝函式
3.使用ob快取實現真靜態真靜態:將動態頁面的輸出內容,儲存到靜態html頁面。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緩衝
使用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...