本篇內(nèi)容介紹了“哪些情況會(huì)引起PHP緩沖區(qū)刷新”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在當(dāng)前 PHP 版本的默認(rèn)配置下,“輸出緩沖(Output Buffering)”是被打開(kāi)的。舊版本則不是這樣,在舊版本的 PHP 中,字符串在每次被輸出的時(shí)候(通過(guò) echo 或 print 函數(shù)),都會(huì)觸發(fā)一次發(fā)送到客戶端瀏覽器的動(dòng)作。
“輸出緩沖”的引入,使得這一過(guò)程更加快速、更加高效。緩沖區(qū)實(shí)際上是在內(nèi)存中開(kāi)辟了一塊區(qū)域,可以認(rèn)為是內(nèi)存中的一個(gè)大的字符串。當(dāng)程序中有字符要輸出的時(shí)候,會(huì)把要輸出的內(nèi)容附加到該緩沖區(qū)中,用來(lái)替代舊版本 PHP 中每次都直接輸出到瀏覽器的方式。當(dāng)緩沖區(qū)被“刷新”的時(shí)候,再統(tǒng)一輸入到用戶瀏覽器。以下幾種情況下,會(huì)引起緩沖區(qū)的“刷新”操作:
1、PHP 程序執(zhí)行完畢;
2、緩存區(qū)的大小超過(guò)了 php.ini 配置文件中設(shè)置的 output_buffering 值;
3、flush() 或者 ob_flush() 函數(shù)被調(diào)用的時(shí)候。
在實(shí)際的產(chǎn)品環(huán)境下,我們可以通過(guò)在 head 標(biāo)簽后馬上刷新 PHP 的緩沖區(qū),來(lái)達(dá)到加速你的站點(diǎn)的目的,示例代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Buffer flushing in action</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <?php // 這里強(qiáng)制刷新緩沖區(qū) flush(); ?> <body> ...
接下來(lái)來(lái)解釋上述代碼的作用:
當(dāng)瀏覽器接收到頁(yè)面 head 部分的代碼的時(shí)候,就可以開(kāi)始下載 head 段中的包括的資源了,類(lèi)似 CSS 文件、站點(diǎn)收藏圖標(biāo)(Favicon)等。這些內(nèi)容的下載可以與瀏覽器接受 body 段的內(nèi)容時(shí)的時(shí)間同步進(jìn)行。
具體能加速多少,需要因地制宜。這取決于很多客觀條件,包括服務(wù)端的響應(yīng)速度、你的頁(yè)面大小、你的 CSS 文件大小和數(shù)量、瀏覽器是否有本地緩存等等。因素固然有很多,不過(guò)這樣一個(gè)小小的優(yōu)化,就可以顯而易見(jiàn)的為你的站點(diǎn)加速,何樂(lè)而不為呢?
“哪些情況會(huì)引起PHP緩沖區(qū)刷新”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
名稱欄目:哪些情況會(huì)引起PHP緩沖區(qū)刷新-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article22/hdicc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、網(wǎng)站改版、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容