Flushing the Buffer Early to Increase Web Site Speed

အဓိက အကြောင်းအရာ - Server
php Flush function for web site performance၀က်ဘ်ဆိုက်ကို သုံးနေသူများက စာမျက်နှာတစ်ခုကို Request လုပ်လိုက်တိုင်း Backend Server ဆီမှ HTML စာမျက်နှာတစ်ခု အဖြစ် ပြန်လည် ထုတ်ပေးနိုင်ရန်အတွက် 200 မှ 500 မီလီစက္ကန့်အထိ အချိန်ပေးရသည်။ ထိုအချိန်တွင် Server မှာ အလွန်အလုပ်လုပ်နေရပြီး User ၏ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲမှာလည်း ဆာဗာမှ ပြန်လည်ပေးပို့မည့် HTML Code များကို စောင့်ဆိုင်းနေရသည်။ တခါတရံ ဖြူဖွေးနေသည့် ပလာစာမျက်နှာတစ်ခုကို မြင်နေရပြီး ကြာမြင့်စွာ စောင့်နေရတတ်သည်။ အထူးသဖြင့် IE6 တွင် ပိုသိသာသည်။ ထိုအချိန်မျိုးမှာ User Experience ကို အလွန်ထိခိုက်စေသည်။

၀က်ဘ်ဆိုက်ကို ပြုပြင်ထိန်းသိမ်းနေရသူများ (Web Masters, Web Developers) သည် Server ၏ အလုပ်ကို တတ်နိုင်သမျှ သက်သာစေရန် ကြိုးစားရင်း၊ အခြားတစ်ဖက်တွင် မိမိတာ၀န်ယူထားရသည့် ၀က်ဘ်ဆိုက်သို့ လာရောက်သူများ၏ အတွေ့အကြုံနှင့် ခံစားချက် (User Experience) ကို တတ်နိုင်သမျှ ကောင်းမွန်စေရန် ဖန်တီးကြရသည်။

Flushing for Better User Experience

PHP ကို အသုံးပြု ရေးသားထားသည့် ၀က်ဘ်ဆိုက်တစ်ခုအတွက် ဤပြဿနာကို flush() Function (http://php.net/manual/en/function.flush.php) ကို အသုံးပြုလျက် သက်သာအောင် ပြုလုပ်နိုင်သည်။ Flush function ကို သုံးသည့် အခါတွင် ဆာဗာမှ အင်တာနက်ကြည့်ဆော့ဖ်၀ဲဆီသို့ ပေးပို့ရမည့် HTML code များအနက်မှ အဆင်သင့် ဖြစ်နေသမျှကို ချက်ချင်းပေးပို့မည် ဖြစ်သည်။ ထို့ကြောင့် ဆာဗာက ကျန်ရှိနေသည့် HTML code များကို ဆက်လက်ထုတ်ပေးနေချိန်တွင် အင်တာနက်ကြည့်ဆော့ဖ်၀ဲမှာလည်း Flush လုပ်ပေးလိုက်သည့် အတွက် ရလာသည့် HTML code များဖြင့် သက်ဆိုင်ရာ အင်တာနက် စာမျက်နှာကို User များတွေ့မြင်စေရန် ပုံဖော်ပေးနိုင်မည် ဖြစ်သည်။

Flush function ကို ထားနိုင်သည့် အကောင်းဆုံးနေရာမှာ HEAD နှင့် BODY ကြားနေရာ ဖြစ်သည်။ အကြောင်းမှာ -

  • HTML page တစ်ခုအတွက် HEAD section ကို ဆာဗာက အမြန်ဆုံးထုတ်ပေးလေ့ရှိပြီး၊
  • အင်တာနက်ကြည့်ဆော့ဖ်ဝဲ အနေဖြင့် စာမျက်နှာတစ်ခုကို ပုံဖော်ရန် အတွက် အဓိကလိုအပ်သော CSS ဖိုင်နှင့် JavaScript ဖိုင်များမှာ HEAD ထဲတွင် ပါရှိသည့် အတွက် ဖြစ်သည်။
  • CSS ဖိုင်ကို ဦးစွာရရှိသည့် အင်တာနက်ကြည့်ဆော့ဖ်ဝဲသည် ဆာဗာမှ ဆက်လက်ပေးပို့မည့် HTML code များကို ဆက်လက်ရယူနေရင်း၊
  • တစ်ဖက်မှလည်း စောင့်ဆိုင်းကြည့်ရှုနေသည့် User များအတွက် စာမျက်နှာကို တတ်နိုင်သမျှ ပုံဖော်ပြသပေးနိုင်သည်။

ဥပမာ -

... <!-- css, js -->
</head>
<?php flush(); ?>
 <body>
 ... <!-- content -->

flush() function သည် ကျွန်တော်တို့ သုံးထားသည့် Web Server ၏ buffering scheme ကို Overide မလုပ်နိုင်သလို၊ အင်တာနက်ကြည့် ဆော့ဝဲတွင်သုံးထားသည့် Buffer စနစ်ကိုလည်း မထိခိုက်စေနိုင်ပေ။ ဤနည်းစနစ်ကို သုံးရာတွင် Yahoo Search မှာ ဦးဆောင်တီထွင်သူဖြစ်ပြီး များစွာ အကျိုးကျေးဇူးရရှိခဲ့ကြောင်း သိရှိရသည်။ ဤနည်းစနစ်ကို ၀က်ဘ်ဆိုက်တစ်ခုအတွက် Custom Theme များ၊ Wordpress, Drupal, Joomla Theme များ ရေးသားရာတွင်လည်း အသုံးချနိုင်သည်။

Reference and More Information

Add new comment

Featured Articles