Asynchronous JavaScript
"နောက်မှပြီးမယ်!"
အခြားလုပ်ဆောင်ချက်များနှင့်အပြိုင် လုပ်ဆောင်နေသည့် လုပ်ဆောင်ချက်များကို အက်ဆစ်ဂရိုနိုက်ဟုခေါ်သည်။
ဥပမာကောင်းတစ်ခုသည် JavaScript setTimeout() ဖြစ်သည်။
Asynchronous JavaScript
ယခင်အခန်းတွင်အသုံးပြုခဲ့သော ဥပမာများသည် အလွန်ရိုးရှင်းပါသည်။
ဥပမာများ၏ ရည်ရွယ်ချက်မှာ callback functions ၏ syntax ကို သရုပ်ပြရန်ဖြစ်သည် ။
ဥပမာ
function myDisplayer(something) {
document.getElementById("demo").innerHTML
= something;
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2;
myCallback(sum);
}
myCalculator(5, 5, myDisplayer);
အထက်ဖော်ပြပါ ဥပမာတွင်၊ myDisplayer
function တစ်ခု၏အမည်ဖြစ်သည်။
myCalculator()
အငြင်းအခုံအဖြစ်သို့ ကူးသွားသည် ။
လက်တွေ့ကမ္ဘာတွင်၊ ဖုန်းခေါ်ဆိုမှုများအား အပျက်သဘောဆောင်သည့်လုပ်ဆောင်ချက်များဖြင့် အများဆုံးအသုံးပြုလေ့ရှိသည်။
ပုံမှန်ဥပမာတစ်ခုကတော့ JavaScript setTimeout()
ပါ။
အချိန်ကုန်ရန် စောင့်နေသည်။
JavaScript လုပ်ဆောင်ချက်ကို အသုံးပြုသည့်အခါ setTimeout()
အချိန်ကုန်ချိန်တွင် လုပ်ဆောင်ရန် ပြန်ခေါ်သည့် လုပ်ဆောင်ချက်ကို သင် သတ်မှတ်နိုင်သည်-
ဥပမာ
setTimeout(myFunction, 3000);
function myFunction() {
document.getElementById("demo").innerHTML = "I love You !!";
}
အထက်ဖော်ပြပါ ဥပမာ myFunction
တွင် ပြန်လည်ခေါ်ဆိုမှုအဖြစ် အသုံးပြုသည်။
myFunction
setTimeout()
အငြင်းအခုံအဖြစ် ဖြတ်သန်းသည် ။
3000 သည် အချိန်မကုန်မီ မီလီစက္ကန့် အရေအတွက်ဖြစ်သောကြောင့်
myFunction()
3 စက္ကန့်အကြာတွင် ခေါ်ပါမည်။
အငြင်းအခုံအဖြစ် လုပ်ဆောင်ချက်တစ်ခုကို သင်ဖြတ်သန်းသောအခါ၊ ကွင်းစဥ်ကို အသုံးမပြုရန် သတိရပါ။
ညာဘက်- setTimeout(myFunction၊ 3000);
မှားသည် setTimeout(myFunction(), 3000);
လုပ်ဆောင်ချက်တစ်ခု၏အမည်ကို အခြားလုပ်ဆောင်ချက်တစ်ခုအဖြစ် လွှဲပြောင်းပေးမည့်အစား၊ ၎င်းအစား လုပ်ဆောင်ချက်တစ်ခုလုံးကို အမြဲတမ်းဖြတ်သန်းနိုင်သည်-
ဥပမာ
setTimeout(function() { myFunction("I love You !!!"); }, 3000);
function myFunction(value) {
document.getElementById("demo").innerHTML = value;
}
အထက်ဖော်ပြပါ ဥပမာ function(){ myFunction("I love You !!!"); }
တွင် ပြန်လည်ခေါ်ဆိုမှုအဖြစ် အသုံးပြုသည်။ ၎င်းသည် ပြီးပြည့်စုံသော လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ပြီးပြည့်စုံသောလုပ်ဆောင်ချက်ကို အငြင်းအခုံအဖြစ် setTimeout() သို့ ပေးပို့သည်။
3000 သည် အချိန်မကုန်မီ မီလီစက္ကန့် အရေအတွက်ဖြစ်သောကြောင့်
myFunction()
3 စက္ကန့်အကြာတွင် ခေါ်ပါမည်။
ကြားကာလများကို စောင့်ဆိုင်းနေသည်-
JavaScript လုပ်ဆောင်ချက်ကို အသုံးပြုသောအခါ setInterval()
၊ ကြားကာလတစ်ခုစီအတွက် လုပ်ဆောင်ရန် ပြန်ခေါ်သည့်လုပ်ဆောင်ချက်ကို သင်သတ်မှတ်နိုင်သည်-
ဥပမာ
setInterval(myFunction, 1000);
function myFunction() {
let d = new Date();
document.getElementById("demo").innerHTML=
d.getHours() + ":" +
d.getMinutes() + ":" +
d.getSeconds();
}
အထက်ဖော်ပြပါ ဥပမာ myFunction
တွင် ပြန်လည်ခေါ်ဆိုမှုအဖြစ် အသုံးပြုသည်။
myFunction
setInterval()
အငြင်းအခုံအဖြစ် ဖြတ်သန်းသည် ။
1000 သည် ကြားကာလများကြားရှိ မီလီစက္ကန့် အရေအတွက်ဖြစ်သောကြောင့် စက္ကန့်
myFunction()
တိုင်း ဟုခေါ်သည်။
ဖိုင်များကို စောင့်နေသည်။
အကယ်၍ သင်သည် ပြင်ပအရင်းအမြစ်တစ်ခု (ဇာတ်ညွှန်းတစ်ခု သို့မဟုတ် ဖိုင်တစ်ခုကဲ့သို့) တင်ရန် လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီးပါက ၎င်းကို အပြည့်အဝမတင်မီတွင် သင်သည် အကြောင်းအရာကို အသုံးမပြုနိုင်ပါ။
ဖုန်းပြန်ခေါ်ရန် ဤအချိန်သည် အကောင်းဆုံးအချိန်ဖြစ်သည်။
ဤဥပမာသည် HTML ဖိုင် ( mycar.html
) ကိုတင်ပြီး ဖိုင်ကို အပြည့်တင်ပြီးနောက် ဝဘ်စာမျက်နှာတွင် HTML ဖိုင်ကို ပြသသည်-
ဖိုင်ကိုစောင့်နေသည်-
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function getFile(myCallback) {
let req = new XMLHttpRequest();
req.open('GET', "mycar.html");
req.onload = function() {
if (req.status == 200) {
myCallback(this.responseText);
} else {
myCallback("Error: " + req.status);
}
}
req.send();
}
getFile(myDisplayer);
အထက်ဖော်ပြပါ ဥပမာ myDisplayer
တွင် ပြန်လည်ခေါ်ဆိုမှုအဖြစ် အသုံးပြုသည်။
myDisplayer
getFile()
အငြင်းအခုံအဖြစ် ဖြတ်သန်းသည် ။
အောက်ဖော်ပြပါ မိတ္တူသည် mycar.html
-
mycar.html
<img src="img_car.jpg" alt="Nice car" style="width:100%">
<p>A car is a wheeled, self-powered motor vehicle used for transportation.
Most definitions of the term specify that cars are designed to run primarily on roads,
to have seating for one to eight people, to typically have four wheels.</p>
<p>(Wikipedia)</p>