php在Nginx環境下進行刷新緩存當即輸出,實現常駐進程輪詢。

如下面這段代碼並不會逐個輸出,而是當瀏覽器籌夠必定字節數進行統一輸出,結果顯而易見,10秒後一次性輸出全部內容
for($i=0;$i<10;$i++){
            echo $i.'</br>';
            sleep(1);
        }

 在Apache環境下能夠這樣解決此問題php

for($i=0;$i<10;$i++){
            echo $i.'</br>';
            sleep(1);
            ob_flush(); //關閉緩存
            flush();    //刷新緩存即當即輸出了
}

  nginx 裏面 flush 默認是無效的, 這個函數默認是做用在php做爲 apache模塊時纔有效,若是須要 nginx 裏面支持,須要加上一行nginx

header('X-Accel-Buffering: no');

實例代碼
header('Content-Type: text/event-stream'); // 以事件流的形式告知瀏覽器進行顯示
header('Cache-Control: no-cache');         // 告知瀏覽器不進行緩存
header('X-Accel-Buffering: no');           // 關閉加速緩衝
for($i=0;$i<10;$i++){
    echo $i.'</br>';
    sleep(1);
    ob_flush();
    flush();
}
相關文章
相關標籤/搜索