OB快取是什麼?以及OB快取的運用場景

2021-09-09 07:16:16 字數 1274 閱讀 7503

1.ob快取執行方式

2.注意:在程式中如果開啟ob_start(),所有的echo輸出都會儲存到ob快取中,可以使用ob系列函式進行操作,如果沒有,預設情況下,在程式執行結束,會把快取中的資料傳送給瀏覽器,如果,你使用ob_clean()類似的函式,會情況快取中的內容,那麼就不用有資料傳送給瀏覽器

ob_start() 開啟

ob_get_contents()  獲取快取中的資料

ob_clean()  清空快取中的資料

ob_end() 關閉ob快取

ob_end_clean() 清空快取並關閉ob快取

ob_flush()  重新整理緩衝區【就是把ob快取中的內容放到程式快取中,快取中內容就是空了,預設是在程式執行完後再放到程式快取中,用此函式可以在程式執行時任意時候放到程式快取中】

flush() 把程式快取內容推送到瀏覽器【一些版本的 microsoft internet explorer 只有當接受到的256個位元組以後才開始顯示該頁面,所以必須傳送一些額外的空格來讓這些瀏覽器顯示頁面內容。】

說的簡單點:預設情況下,php會把輸出的內容放到【程式快取】中,待程式跑完,把【程式快取】中的東西全部拋到瀏覽器中;現在使用ob快取,開啟後,所有的輸出都會放到【ob快取】中,頭資訊(header)等這些依舊存放到【程式快取】中,待程式跑完,【ob快取】中的內容會被放到【程式快取】內容後面,再送到瀏覽器。ob_flush()是把【ob快取】中的內容放到【程式快取】中,之前只有待程式跑完才會把【ob快取】內容放到【程式快取】中,現在用ob_flush()就可以在任意時候送到【程式快取】中;flush()函式的作用是把【程式快取】中的資料拋到瀏覽器中;

總結:ob_flush()把ob快取中的內容放到程式快取

flush()是把程式快取中的內容送到瀏覽器快取中

我的電商專案的幫助中心、商品的詳情頁面都使用到了ob緩衝,因為幫助中心和商品詳情的內容都是一些我們短期不需要進行修改的內容,當時我首先使用ob_start()方法開啟我們的ob緩衝,將使用ob_get_contents()或者ob_flush() 方法獲取我們ob緩衝頁面的一些內容,當我們的緩衝中沒有我們想要的內容的時候,會訪問我們的資料庫,將會從資料庫中獲取到我們需要的值,然後進行判斷,會先將資料庫的這些內容新增到我們緩衝中,也是為了在下次訪問的時候,免去我們訪問資料庫,我們也可以給他新增乙個快取的有效時間,在這個時間內,使用者查詢就不會去訪問資料庫,在快取過期後在再去訪問資料庫。這種情況下我們可以減少資料庫的訪問及資料庫的壓力,最後我們會使用ob_end()的方法將我們使用的ob緩衝進行關閉,我們使用它的原因就是運用了它的乙個優勢,減輕資料庫的壓力,減少對資料庫的訪問情況。

ob快取的基本使用

在頁面 載入的時候 如果 很多 很大 會造成頁面的阻塞降低使用者體驗 我們在點選頁面的時候可以使用ob快取 整個頁面,當使用者點選的時候直接請求的是我們預先準備好的html頁面 也降低了我們資料庫的壓力 1 開啟 ob快取 如果你使用的thinkphp框架 可以直接使用php標籤 開啟ob 快取 o...

PHP ob快取以及ob函式原理例項解析

ob快取介紹 ob是output buffering的簡稱,輸出緩衝區,緩衝區是通過php.ini中的output buffering變數控制的。其預設值是off,可以設定為on來開啟buffer。打來buffer後,即便程式中沒有用ob函式,實際上 也是使用了緩衝區的。另外,不管php.ini中o...

php真靜態快取 ob系統函式

真靜態快取 真的生成乙個html頁面,在接下來的操作中直接呼叫該html 第一次 重新整理網頁面 判斷是否存在快取檔案 可設定一時間 如果不存在 第一次是 可根據pdo 連線資料庫 查詢資料 輸出到頁面 並且同時快取 寫入 到本地乙個.html檔案 再次 重新整理網頁面 判斷是否存有該快取檔案時 當...