<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်စာသား၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,သာဥပမာသရုပ်ပြသည်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဇာတ်ညွှန်းကိုစတင်လုပ်ဆောင်ပါ...<br>"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"output ကိုအကြောင်းအရာပြင်ဆင်ပါ...<br>"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* ဘဲှ့:အဲဒါကိုဘယ်လိုသုံးရမလဲ flush() အချိန်နှင့်တပြေးညီအကြောင်းအရာ output ကို?PHP လက်တွေ့ကျတဲ့ကျွမ်းကျင်မှုခွဲခြမ်းစိတ်ဖြာခြင်း
*
* တည်နေ PHP အလယ်ပိုင်း,ပုံမှန်အားဖြင့်,ဝက်ဘ်စာမျက်နှာကို client browser သို့တစ်ကြိမ်တွင်တစ်ချိန်တည်းတွင်တစ်ချိန်တည်းတွင်ပို့သည်အထိပေးပို့သည်။。
* ဆိုလိုသည်မှာသင်၏ပရိုဂရမ်ကိုအချိန်ကြာမြင့်စွာကွပ်မျက်ရန်လိုအပ်ပါက,用户တည်နေ等待时看不到任何反馈,ညံ့ဖျင်းသောအတွေ့အကြုံ。
* ဒီပြ problem နာကိုဖြေရှင်းရန်,PHP ထောက်ပံ့ flush() လုပ်ဆောင်ချက်,အဆိုပါကြားခံ၏အကြောင်းအရာကို browser ကိုချက်ချင်းပို့နိုင်ပါတယ်,အကြောင်းအရာကိုအကောင်အထည်ဖော်ပါ“အချိန်မှန် output ကို”。
*
* ဤဆောင်းပါးသည်အသေးစိတ်မိတ်ဆက်ပေးပါမည် flush() ဘယ်လိုသုံးရမလဲ,并ပေါင်းစပ်ထားသော实战技巧帮助你တည်နေ项目အလယ်ပိုင်း提升用户体验。
*/</span>
</span><span><span class="hljs-comment">// 1. flush() အခြေခံနိယာမ</span></span><span>
</span><span><span class="hljs-comment">// flush() လုပ်ဆောင်ချက်用于强制将 PHP output buffer ၏ပါဝင်မှုကို client ကိုပို့သည်。</span></span><span>
</span><span><span class="hljs-comment">// ဒါပေမဲ့,အဲဒါကိုသတိပြုသင့်တယ်,flush() အဲဒါကိုရှင်းမှာမဟုတ်ဘူး PHP output ကိုကြားခံ,၎င်းသည်လက်ရှိကြားခံအကြောင်းအရာကို client သို့တွန်းပို့ရန်ကြိုးစားနေသည်。</span></span><span>
</span><span><span class="hljs-comment">// 2. ပေါင်းစပ်ထားသော ob_flush()</span></span><span>
</span><span><span class="hljs-comment">// တည်နေ实际应用အလယ်ပိုင်း,အကေြာင်းမှာ PHP output buffering ကိုပုံမှန်အားဖြင့်ဖွင့်ထားသည်(Output Buffering),သီးခြားခေါ် flush() ဖြစ်ကောင်းအလုပ်မလုပ်ဘူး。</span></span><span>
</span><span><span class="hljs-comment">// ထိုကေြာင့်,အထွေထွေပူးပေါင်းဆောင်ရွက်မှု ob_flush() အသုံးပြု,ရှင်းရှင်းလင်းလင်းအရင် PHP ကြားခံ,再အသုံးပြု flush() browser ကိုတွန်းပါ。</span></span><span>
</span><span><span class="hljs-comment">//</span></span><span>
</span><span><span class="hljs-comment">// နမူနာ:</span></span><span>
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> <= </span><span><span class="hljs-number">5</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိတိုးတက်မှု:1 ။ <span class="hljs-subst">$i</span></span></span><span> ခြေလှမ်းများပြီးစီးခဲ့သည်...<br>";
</span><span><span class="hljs-title function_ invoke__">ob_flush</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// Simululation Time- စားသုံးစစ်ဆင်ရေး</span></span><span>
}
</span><span><span class="hljs-comment">// 3. ပိတ်ခြင်း browser နှင့် server cache ၏သက်ရောက်မှု</span></span><span>
</span><span><span class="hljs-comment">// browsers နှင့် servers ၏ cache နှင့်ဆာဗာများ၏ cache ယန္တရားသည်အကြောင်းအရာ၏အချိန်နှင့်တပြေးညီပြသမှုကိုတားဆီးနိုင်သည်。</span></span><span>
</span><span><span class="hljs-comment">// အကြံပြု settings HTTP ခေါင်းကို cache ကိုပိတ်ပါ:</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Cache-Control: no-cache"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Pragma: no-cache"</span></span><span>);
</span><span><span class="hljs-comment">// 4. ရုပ်သိမ်းခြင်း gzip ချုံ့ခြင်း</span></span><span>
</span><span><span class="hljs-comment">// ဆာဗာဖွင့်ထားလျှင် gzip ချုံ့ခြင်း,flush() ဖြစ်နိုင်သောပျက်ကွက်,因为ချုံ့ခြင်း后内容必须完整才能解压。</span></span><span>
</span><span><span class="hljs-comment">// 可以尝试တည်နေ PHP 配置或服务器配置အလယ်ပိုင်းရုပ်သိမ်းခြင်း gzip,或者针对အချိန်မှန် output ကို页面禁用。</span></span><span>
</span><span><span class="hljs-comment">// 5. အသုံးပြု隐式刷新</span></span><span>
</span><span><span class="hljs-comment">// သွား ini_set('implicit_flush', 1) သွယ်ဝိုက် refresh ကိုဖွင့်နိုင်ပါသည်,PHP တည်နေ每次输出后自动调用 flush()。</span></span><span>
</span><span><span class="hljs-comment">// 也可အသုံးပြု ob_implicit_flush(true) တူညီသောအကျိုးသက်ရောက်မှုအောင်မြင်ရန်。</span></span><span>
</span><span><span class="hljs-comment">// 6. output format နှင့် content ကိုအာရုံစိုက်ပါ</span></span><span>
</span><span><span class="hljs-comment">// browser သည် rendering ဖြစ်ပေါ်စေရန်လုံလောက်သောအကြောင်းအရာများလိုအပ်သည်,၎င်းကိုအလုံအလောက် output လုပ်ရန်သို့မဟုတ်အချို့သောနေရာများနှင့်ဖြည့်ရန်အကြံပြုသည်。</span></span><span>
</span><span><span class="hljs-comment">// 7. 实战နမူနာ总结</span></span><span>
</span><span><span class="hljs-comment">// ပေါင်းစပ်ထားသော上述方法,完整နမူနာ如下:</span></span><span>
<span class="hljs-comment">/*
<?php
header("Content-Type: text/html; charset=utf-8");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
ob_implicit_flush(true);
while (</span></span><span><span class="hljs-doctag">@ob</span></span><span>_end_flush()); // ရုပ်သိမ်းခြင်း所有输出缓冲
for ($i = 1; $i <= 10; $i++) {
echo "ပစ္စည်းစာရင်း:$i / 10<br>";
echo str_repeat(' ', 1024); // output ကိုဖြည့်ပါ,browser ကိုချက်ချင်း render
flush();
sleep(1);
}
?>
*/
</span><span><span class="hljs-comment">// သွား以上方式,scripts များသည်အချိန်ကြာမြင့်စွာလည်ပတ်နေစဉ်တွင်အသုံးပြုသူများအတွက်စောင့်ဆိုင်းနေသောအတွေ့အကြုံကိုသိသိသာသာတိုးတက်စေနိုင်သည်,အကြောင်းအရာကိုတကယ့်အချိန်အတွက်အကြောင်းအရာများကိုကြည့်ပါ。</span></span><span>
</span><span><span class="hljs-comment">// ကောက်ချက်</span></span><span>
</span><span><span class="hljs-comment">// flush() တည်နေ PHP 实战အလယ်ပိုင်း是一个非常实用的技巧,尤其适合ပစ္စည်းစာရင်း显示、日志အချိန်မှန် output ကို等场景。</span></span><span>
</span><span><span class="hljs-comment">// ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာနားလည်တယ်,စနစ်တကျဆာဗာကို configure လုပ်ပါ PHP တည်ဆောက်သည်,အများဆုံးအကျိုးသက်ရောက်မှုကိုရရှိရန်သာ。</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>