·
作者: laruence()
·
: ·
ob_flush/flush
在手冊中的描述
, 都是重新整理輸出緩衝區
, 並且還需要配套使用
, 所以會導致很多人迷惑…
其實,
他們倆的操作物件不同
, 有些情況下
, flush
根本不做什麼事情..
ob_*
系列函式
, 是操作
php本身的輸出緩衝區.
所以, ob_flush
是重新整理php
自身的緩衝區.
而flush,
嚴格來講
, 這個只有在
php做為
apache
的module(handler
或者filter)
安裝的時候
, 才有實際作用
. 它是重新整理
webserver(
可以認為特指
apache)
的緩衝區.
在apache module
的sapi
下, flush
會通過呼叫
sapi_module
的flush
成員函式指標
, 間接的呼叫
apache
的api: ap_rflush
重新整理apache
的輸出緩衝區
, 當然手冊中也說了
, 有一些
apache
的其他模組
, 可能會改變這個動作的結果..
1.
有些apache
的模組,比如
mod_gzip
,可能自己進行輸出快取,
2.
這將導致
flush()
函式產生的結果不會立即被傳送到客戶端瀏覽器。
3.
4.
甚至瀏覽器也會在顯示之前,快取接收到的內容。例如
netscape
5.
瀏覽器會在接受到換行或
html
標記的開頭之前快取內容,並且在
6.
接受到標記之前,不會顯示出整個**。
7.
8.
一些版本的
microsoft internet explorer
只有當接受到的
256個
9.
位元組以後才開始顯示該頁面,所以必須傳送一些額外的空格來讓這
10.
些瀏覽器顯示頁面內容。 所以
, 正確使用倆者的順序是. 先
ob_flush,
然後flush, 當然
, 在其他
sapi下,
不呼叫flush
也可以,
只不過為了保證你**的可移植性
, 建議配套使用
.
深入理解ob flush和flush的區別
ob flush flush在手冊中的描述,都是重新整理輸出緩衝區,並且還需要配套使用,所以會導致很多人迷惑 其實,他們倆的操作物件不同,有些情況下,flush根本不做什麼事情.ob 系列函式,是操作php本身的輸出緩衝區.所以,ob flush是重新整理php自身的緩衝區.而flush,嚴格來講,...
深入理解ob flush和flush的區別
ob flush flush在手冊中的描述,都是重新整理輸出緩衝區,並且還需要配套使用,所以會導致很多人迷惑 其實,他們倆的操作物件不同,有些情況下,flush根本不做什麼事情.ob 系列函式,是操作php本身的輸出緩衝區.所以,ob flush是重新整理php自身的緩衝區.而flush,嚴格來講,...
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...