我們一直在使用php flush在點擊時立即「空白」頁面,並且還發送頁面的導航和主要組件,以便頁面幾乎立即出現即使有時這些內容可能需要很長時間才能加載。PHP刷新停止在IIS7.5中沖洗
這一直工作得很好。
最近我們從IIS 7.0升級到7.5,現在刷新不起作用。在調查問題時,我們已經關閉了靜態和動態文件的壓縮。我們也關閉了輸出緩存。
我們還關閉了zlib壓縮並在php.ini中輸出緩衝。
爲了測試,我們有以下腳本
@ini_set("output_buffering", "Off");
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
ob_start();
echo "starting...<br/>\n";
for($i = 0; $i < 5; $i++) {
print "$i<br/>\n";
ob_end_flush();
ob_flush();
flush();
ob_start();
sleep(2);
}
print "DONE!<br/>\n";
瀏覽器只是顯示加載狀態(無論是在任何瀏覽器中的問題,在IE瀏覽器,它看起來像一個Ajax gif動畫,在Firefox中標籤會顯示「Connecting ...」)10秒鐘,然後突然顯示整個輸出。
根據本網站上的類似問題,我們嘗試了各種flush和ob_flush和ob_end_flush的組合。他們都沒有工作。有沒有辦法讓IIS/PHP刷新數據?
這工作。把它分開,看看哪個是關鍵... –
@Jeff,這個演示應該有點幫助:-) – Neal
它看起來像關鍵是content-type:text/html;字符集= UTF-8。將此添加爲標題也可以。特別是它看起來像charset = utf-8是它的工作原理。 –