buffer 的概念
buffer 是一個記憶體地址空間,linux系統預設的大小一般為4096B(4kb),即一個記憶體頁。buffer 主要解決不同裝置之間儲存速度件間的差異,減少程式間的相互等待。php.ini 中的設定 為output_buffering = 4096
當我們執行echo 的時候,並沒有立即通過tcp將內容輸出到瀏覽器,而是會先將內容寫入到 php buffer。php buffer 的空間寫滿了之後,會通過作業系統將buffer中的資料交給tcp傳送給瀏覽器,所以資料的寫入依次是:
echo > php buffer > tcp buffer > browser
header( 'X-Accel-Buffering: no' ); //控制瀏覽器的buffer行為。
for ($i = 0; $i < 10000; $i++) {
echo $i;
ob_flush();
flush();
sleep(1);
}
參考:
rexmolo.github.io/2018/07/06/php-i...
本作品採用《CC 協議》,轉載必須註明作者和本文連結