各位前輩好
我想透過CodeIgniter 4來實現類似這篇文章(PHP+jquery ajax 實現實時的輸出顯示)的功能,將當前進度即時顯示到網頁上
GOOGLE爬文沒找不到相關資料,
透過一陣子的自己摸索亂試中於試出來了~
但我不清楚為啥這樣可以...
我在.env的CI_ENVIRONMENT目前設定為development
程式碼如下
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class demo extends BaseController
{
public function index()
{
$this->response->send(); // 送出預設表頭
ob_end_flush(); // 從緩衝區輸出並結束當前緩衝區
flush(); // 顯示到畫面
for ($i = 0; $i < 10; $i++) {
echo $i . ' ';
ob_flush(); // 從緩衝區輸出
flush(); // 顯示到畫面
sleep(1);
}
echo 'End';
return $this->response->setJSON('');
}
}
結果如下圖
為什麼我把ob_end_flush()換成ob_flush()會導致所有工作都結束才一次輸出?
是否當前緩衝區比較特別或CI4他有做了什麼特別的設定?
既然前面使用ob_end_flush()結束當前緩衝區了,FOR裡面若使用ob_start()為啥又變成所有工作都結束才一次輸出?
是否有更好的做法
如果我想GOOGLE,我關鍵字要下啥比較好?
我目前關鍵字使用如codeigniter、即時輸出,就只找到這篇文章但這篇文章是cli不是我要的