AJAX నుండి Chart.js వరకు డేటా హ్యాండ్లింగ్ను అర్థం చేసుకోవడం
అసమకాలిక డేటాను నిర్వహించడం అనేది డైనమిక్ ఆన్లైన్ అప్లికేషన్లను, ప్రత్యేకించి జావాస్క్రిప్ట్తో డిజైన్ చేసే కొత్తవారికి సాధారణ కష్టం. Chart.js వంటి విజువలైజేషన్ ఫ్రేమ్వర్క్లో బాహ్య డేటాను చేర్చడానికి ప్రయత్నిస్తున్నప్పుడు, ఈ సమస్య మరింత క్లిష్టంగా మారుతుంది. వాతావరణ డేటాను తిరిగి పొందడానికి AJAX కాల్ని ఉపయోగించడం ఒక సాధారణ పరిస్థితి, ఇది గ్రాఫికల్ రెండరింగ్ కోసం మరొక ఫంక్షన్కు పంపబడుతుంది.
సర్వర్ నుండి డేటాను పొందడానికి అనువైన పద్ధతి AJAX విజయ కాల్బ్యాక్. అయితే, ఈ డేటాను ఇతర జావాస్క్రిప్ట్ ఆపరేషన్లు లేదా చార్ట్ని సృష్టించడం వంటి విధానాలకు బదిలీ చేయడంలో అసలు ఇబ్బంది ఉంది. మొదట, ఈ ప్రవాహాన్ని అర్థం చేసుకోవడం JavaScript గురించి తెలియని వారికి భయపెట్టేలా అనిపించవచ్చు.
మేము ఈ గైడ్లో దశలవారీ విధానాన్ని విడదీస్తాము. సర్వర్ నుండి లేబుల్లు మరియు డేటా పాయింట్లతో కూడిన చార్ట్ను డైనమిక్గా రూపొందించడానికి, మేము AJAXని ఉపయోగించి డేటాను ఎలా తిరిగి పొందాలో, దానిని అన్వయించి, ఆపై ఆ డేటాను Chart.jsకి సరిగ్గా ఎలా పంపాలో పరిశీలిస్తాము. మీరు ఈ పద్ధతిలో అసమకాలిక డేటాను సమర్థవంతంగా నిర్వహించడంలో నైపుణ్యాన్ని పొందుతారు.
ఈ ట్యుటోరియల్ని చదివిన తర్వాత, మీరు AJAX ద్వారా ఎలా స్వీకరించాలో తెలుసుకోవడంతో పాటు దృశ్య ప్రాతినిధ్యం కోసం వాతావరణ డేటాను చార్టింగ్ లైబ్రరీకి ప్రసారం చేయగలరు. ఇప్పుడు పరిష్కారాన్ని ప్రారంభిద్దాం!
ఆదేశం | ఉపయోగం యొక్క ఉదాహరణ |
---|---|
$.ajax() | ఇది j క్వెరీతో అసమకాలిక HTTP అభ్యర్థనలను పంపడానికి ఒక మార్గం. సర్వర్ నుండి వాతావరణ సమాచారాన్ని తిరిగి పొందడానికి ఇది ఉదాహరణలో ఉపయోగించబడుతుంది. దాని విజయవంతమైన కాల్బ్యాక్ ప్రతిస్పందనను నిర్వహిస్తుంది మరియు ఇది GET మరియు POSTతో సహా అనేక HTTP పద్ధతులకు మద్దతు ఇస్తుంది. |
JSON.parse() | JSON స్ట్రింగ్ నుండి జావాస్క్రిప్ట్ ఆబ్జెక్ట్ను సృష్టిస్తుంది. ఈ సందర్భంలో, ఇది సర్వర్ నుండి పంపబడిన వాతావరణ సమాచారాన్ని ఒక వస్తువుగా మారుస్తుంది, తద్వారా స్క్రిప్ట్ గూడులో ఉన్న సమయం మరియు ఉష్ణోగ్రత శ్రేణులను యాక్సెస్ చేయగలదు. |
Chart() | Chart.js ప్యాకేజీని ఉపయోగించి, ఈ స్క్రిప్ట్ మొదటి నుండి కొత్త చార్ట్ను సృష్టిస్తుంది. ఇది డేటా (లేబుల్లు మరియు డేటాసెట్లు), చార్ట్ రకం ("లైన్" వంటివి) మరియు సెట్టింగ్ ఎంపికలను వివరిస్తుంది. ఉష్ణోగ్రత డేటాను సమయం యొక్క విధిగా చూపే లైన్ గ్రాఫ్ను రూపొందించడానికి ఇది ఉదాహరణలో ఉపయోగించబడుతుంది. |
context('2d') | కాన్వాస్ మూలకం యొక్క 2D రెండరింగ్ సందర్భాన్ని పొందుతుంది. కాన్వాస్ మూలకంపై చార్ట్ను గీయడానికి, ఈ ఆదేశం అవసరం. ఇది Chart.jsతో గ్రాఫికల్ అంశాలను అందించగలిగేలా చేస్తుంది. |
fetch() | నెట్వర్క్లను అభ్యర్థించడానికి సమకాలీన JavaScript APIని పొందడం అంటారు. $.ajax() స్థానంలో కాల్బ్యాక్ అవసరం లేకుండా సర్వర్ నుండి డేటాను తిరిగి పొందడానికి async/await విధానం మరింత క్రమబద్ధీకరించబడిన మరియు సమర్థవంతమైన అసమకాలిక కోడ్ను ఉపయోగిస్తుంది. |
async/await | కాల్బ్యాక్లు లేదా వాగ్దానాలతో పోలిస్తే, ఈ ఆదేశాలు అసమకాలిక కార్యకలాపాలను నిర్వహించడంలో మరింత ప్రభావవంతంగా ఉంటాయి. అసమకాలిక ఫంక్షన్ను ప్రకటించడానికి మరియు ఫెచ్() వాగ్దానం పరిష్కరించబడే వరకు ఎగ్జిక్యూషన్ను నిలిపివేయడానికి వేచి ఉండటానికి అసమకాలిక డేటాను ప్రాసెస్ చేయడం కోసం ఉదాహరణ ఒక స్పష్టమైన ప్రవాహాన్ని అందిస్తుంది. |
.then() | ఈ టెక్నిక్ వాగ్దానాలకు వర్తించబడుతుంది మరియు వాగ్దానం యొక్క అంగీకారం లేదా తిరస్కరణను నిర్వహించడానికి లింక్ చేయబడింది. వాతావరణ డేటా విజయవంతంగా తిరిగి పొందిన తర్వాత, మాడ్యులర్ విధానం దానిని ప్రాసెస్ చేస్తుంది మరియు చార్ట్ రెండరింగ్ ఫంక్షన్కు పంపుతుంది. |
.catch() | చిరునామాలు లోపాలను వాగ్దానం చేస్తాయి. కోడ్లో బలమైన ఎర్రర్ హ్యాండ్లింగ్ను అందించడానికి, నెట్వర్క్ వైఫల్యాలు వంటి loadSkiResortData() వాగ్దానంతో ఏవైనా సమస్యలను స్క్రిప్ట్ నమూనా గుర్తిస్తుంది మరియు కన్సోల్కు దోష సందేశాన్ని లాగ్ చేస్తుంది. |
beginAtZero | ఈ Chart.js ఎంపిక Y-యాక్సిస్ను సున్నా వద్ద ప్రారంభించమని ఒత్తిడి చేయడం ద్వారా చార్ట్ తక్కువ ఉష్ణోగ్రత విలువలను తగిన విధంగా ప్రదర్శిస్తుందని నిర్ధారిస్తుంది. ఇది చార్ట్ సెటప్లోని నిర్దిష్ట సెట్టింగ్, ఇది డేటా డిస్ప్లే యొక్క స్పష్టతను మెరుగుపరుస్తుంది. |
జావాస్క్రిప్ట్లో AJAX డేటా ఫ్లోను విచ్ఛిన్నం చేయడం
పైన పేర్కొన్న స్క్రిప్ట్లు AJAX సక్సెస్ కాల్బ్యాక్ నుండి డేటాను మరొక ఫంక్షన్కి ఎలా పొందాలో మరియు పాస్ చేయాలో మీకు చూపుతాయి-ఈ సందర్భంలో, Chart.jsతో డేటాను వర్ణించడానికి. ఈ ప్రక్రియ AJAX కాల్తో ప్రారంభమవుతుంది, ఇది సర్వర్ ఎండ్పాయింట్ను ఉపయోగించి GET అభ్యర్థనను చేస్తుంది j క్వెరీ నుండి పద్ధతి. ఈ సందర్భంలో, వాతావరణ డేటా ముగింపు పాయింట్ ద్వారా అందించబడుతుంది. ప్రతిస్పందన JSON ఆకృతిలో అందించబడుతుంది, ఇది జావాస్క్రిప్ట్ ఆబ్జెక్ట్గా అన్వయించడానికి పద్ధతిని ఉపయోగిస్తుంది. ఇది ఒక ముఖ్యమైన దశ ఎందుకంటే ఇది సర్వర్ నుండి మనకు లభించే డేటాతో పని చేయడానికి అనుమతిస్తుంది. ఉదాహరణకు, మేము గంటవారీ ఉష్ణోగ్రత మరియు సమయ విలువలను సంగ్రహించవచ్చు మరియు Chart.js ఉదాహరణకి సరఫరా చేయబడిన డేటాను మార్చడానికి ఆ డేటాను ఉపయోగించవచ్చు.
ఆ తర్వాత స్క్రిప్ట్కి వెళుతుంది కాల్బ్యాక్ పద్ధతి, ఇక్కడ డేటా విజయవంతంగా తిరిగి పొందబడినప్పుడు మరియు అన్వయించబడినప్పుడు వాతావరణ డేటా డీబగ్గింగ్ కోసం కన్సోల్కు లాగ్ చేయబడుతుంది. సరైన డేటా స్వీకరించబడుతుందని హామీ ఇవ్వడానికి, ఇది అభివృద్ధిలో ఒక ప్రామాణిక విధానం. మేము కాల్ డేటా యొక్క ఖచ్చితత్వాన్ని ధృవీకరించిన తర్వాత పని చేస్తుంది, సమయ శ్రేణి మరియు ఉష్ణోగ్రత శ్రేణిని రెండు ముఖ్యమైన డేటా ముక్కలుగా అందిస్తుంది. కోడ్ యొక్క సంస్థ మరియు పునర్వినియోగాన్ని నిర్వహించడానికి మాడ్యులర్ ఫంక్షన్లను ఉపయోగించడం ఎంత కీలకమో ఈ పద్ధతి చూపిస్తుంది.
డేటాను దృశ్యమానం చేయడానికి Chart.jsని ఉపయోగించడంలో చివరి దశ ఫంక్షన్. దీన్ని ఉపయోగించడం అవసరం ముందుగా కాన్వాస్ మూలకం యొక్క 2D రెండరింగ్ సందర్భాన్ని పొందడానికి ఫంక్షన్. ఈ విధంగా ఉపయోగించి గ్రాఫిక్స్ రెండరింగ్ కోసం కాన్వాస్ సిద్ధంగా ఉంది. తదనంతరం, కొత్త చార్ట్ ఆబ్జెక్ట్ నిర్మించబడింది మరియు దాని కాన్ఫిగరేషన్ చార్ట్ రకంతో పాటు ప్రదర్శించబడే డేటాను నిర్వచించడానికి సెట్ చేయబడింది (ఈ సందర్భంలో 'లైన్,'). ఉష్ణోగ్రత రీడింగ్లను కలిగి ఉన్న డేటాసెట్ సర్వర్ ప్రతిస్పందన నుండి తీసుకోబడిన ఉష్ణోగ్రత విలువలకు సెట్ చేయబడింది మరియు చార్ట్లోని లేబుల్లు AJAX కాల్ నుండి పొందిన సమయ విలువలకు సెట్ చేయబడతాయి.
చివరగా, AJAX అభ్యర్థన తప్పుగా ఉన్న సందర్భంలో, కన్సోల్కు సందేశం లాగిన్ చేయబడిందని నిర్ధారించుకోవడానికి మేము ప్రతి పరిష్కారంలో దోష నిర్వహణను చేర్చాము. విశ్వసనీయమైన వెబ్ యాప్లను రూపొందించడానికి ఇది చాలా అవసరం, ఎందుకంటే ఇది వినియోగదారుని ప్రభావితం చేసే ముందు సాధ్యమయ్యే సమస్యలను గుర్తించడానికి డెవలపర్లను అనుమతిస్తుంది. వాగ్దానాలు మరియు వంటి ఆధునిక పద్ధతులు AJAX కాల్ల అసమకాలిక స్వభావాన్ని మరింత స్పష్టంగా మరియు నిర్వహించేలా చేయడంలో సహాయం చేస్తుంది. సాంప్రదాయిక కాల్బ్యాక్-హెవీ కోడ్తో పోలిస్తే, ఈ పద్ధతులు డేటాను తిరిగి పొందడానికి మరియు చార్ట్లను రూపొందించడానికి మరింత ప్రభావవంతమైన మరియు స్పష్టమైన మార్గాన్ని అందిస్తాయి.
పరిష్కారం 1: కాల్బ్యాక్లతో AJAX డేటాను Chart.jsకి పంపడం
ఈ పద్ధతి Chart.jsని ఉపయోగించి చార్ట్ను రెండర్ చేస్తుంది మరియు AJAX కోసం j క్వెరీని ఉపయోగిస్తుంది. AJAX సక్సెస్ మెథడ్ నుండి వేరే ఫంక్షన్కి డేటాను బదిలీ చేయడానికి కాల్బ్యాక్లు పరిష్కారంలో ఉపయోగించబడతాయి.
$(document).ready(function() {
loadSkiResortData();
});
function loadSkiResortData() {
$.ajax({
method: 'GET',
url: '/admin/sknowed/loadSkiResortData',
success: function(response) {
const obj = JSON.parse(response.weatherData);
const temperatures = obj.hourly.temperature_2m;
const times = obj.hourly.time;
renderChart(times, temperatures);
},
error: function() {
console.error('Failed to load data');
}
});
}
function renderChart(labels, data) {
const ctx = document.getElementById('myChart').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Temperature Over Time',
data: data,
borderWidth: 1
}]
},
options: {
responsive: true,
scales: {
y: {
beginAtZero: true
}
}
}
});
}
పరిష్కారం 2: వాగ్దానాలతో మాడ్యులర్ అప్రోచ్
ఈ పద్ధతిలో, కోడ్ మాడ్యులరైజ్ చేయబడింది మరియు AJAX సక్సెస్ హ్యాండ్లర్ నుండి డేటా కాల్బ్యాక్ల కంటే JavaScript వాగ్దానాల ద్వారా పంపబడుతుంది. ఫలితంగా మెరుగైన రీడబిలిటీ మరియు వశ్యత హామీ ఇవ్వబడతాయి.
$(document).ready(function() {
loadSkiResortData()
.then(data => {
const { temperature_2m, time } = data.hourly;
renderChart(time, temperature_2m);
})
.catch(error => console.error('Error loading data:', error));
});
function loadSkiResortData() {
return new Promise((resolve, reject) => {
$.ajax({
method: 'GET',
url: '/admin/sknowed/loadSkiResortData',
success: function(response) {
const data = JSON.parse(response.weatherData);
resolve(data);
},
error: function(error) {
reject(error);
}
});
});
}
function renderChart(labels, data) {
const ctx = document.getElementById('myChart').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Temperature Over Time',
data: data,
borderWidth: 1
}]
},
options: {
responsive: true,
scales: {
y: {
beginAtZero: true
}
}
}
});
}
పరిష్కారం 3: Async/Awaitతో Fetch APIని ఉపయోగించడం
ఈ విధానం అసమకాలిక డేటాను నిర్వహించడానికి అసమకాలిక/నిరీక్షణను ఉపయోగిస్తుంది మరియు ఇటీవలి Fetch APIతో j క్వెరీ AJAXని ప్రత్యామ్నాయం చేస్తుంది. పటిష్టత కోసం, లోపం నిర్వహణ కూడా చేర్చబడింది.
document.addEventListener('DOMContentLoaded', async () => {
try {
const data = await loadSkiResortData();
const { temperature_2m, time } = data.hourly;
renderChart(time, temperature_2m);
} catch (error) {
console.error('Error loading data:', error);
}
});
async function loadSkiResortData() {
const response = await fetch('/admin/sknowed/loadSkiResortData');
if (!response.ok) {
throw new Error('Network response was not ok');
}
const result = await response.json();
return JSON.parse(result.weatherData);
}
function renderChart(labels, data) {
const ctx = document.getElementById('myChart').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Temperature Over Time',
data: data,
borderWidth: 1
}]
},
options: {
responsive: true,
scales: {
y: {
beginAtZero: true
}
}
}
});
}
AJAX మరియు Chart.jsని ఉపయోగించి జావాస్క్రిప్ట్లో డేటా హ్యాండ్లింగ్ని అన్వేషించడం
JavaScript మరియు AJAXతో వ్యవహరించేటప్పుడు డెవలపర్లు తరచుగా ఎదుర్కొనే ఒక ప్రధాన సమస్య అసమకాలిక విధులు మరియు పద్ధతుల మధ్య డేటాను సమర్థవంతంగా బదిలీ చేయడం. డిజైన్ ద్వారా AJAX అసమకాలికంగా ఉన్నందున, డేటా ఎప్పుడు యాక్సెస్ చేయబడుతుందో మీరు ఎల్లప్పుడూ అంచనా వేయలేరు. ఇది మీ అప్లికేషన్లోని ఇతర ప్రాంతాలలో ఆ డేటాను ఉపయోగించడం మరింత కష్టతరం చేస్తుంది, ఉదాహరణకు మీరు దానిని విజువలైజేషన్ కోసం లైబ్రరీకి పంపినప్పుడు . కాల్బ్యాక్లు మరియు మాడ్యులర్ ఫంక్షన్లు ఈ ప్రవాహాన్ని నిర్వహించడానికి మరియు డేటా సరిగ్గా పాస్ చేయబడిందని హామీ ఇవ్వడానికి చక్కగా నిర్వహించబడిన మార్గాలు.
మరొక కీలకమైన పద్ధతిని ఉపయోగించడం మరియు వాగ్దానాలు. AJAX అభ్యర్థన విజయవంతంగా పూర్తయిన తర్వాత మాత్రమే డేటా ప్రాసెస్ చేయబడుతుందని వాగ్దానాలు నిర్ధారిస్తాయి, ఇది డేటా ప్రవాహాన్ని మరింత సమర్థవంతంగా నిర్వహించడంలో మీకు సహాయపడుతుంది. ఇది అధిక సమూహ కాల్బ్యాక్ల అవసరాన్ని తగ్గిస్తుంది, కొన్నిసార్లు "కాల్బ్యాక్ హెల్"గా సూచించబడుతుంది మరియు కోడ్ యొక్క రీడబిలిటీని మెరుగుపరుస్తుంది. డెవలపర్లు ఉపయోగించడం ద్వారా అసమకాలిక కోడ్ను సమకాలిక నిర్మాణంలోకి కుదించవచ్చు సమకాలీకరించు/నిరీక్షించు, ఇది డేటా-హ్యాండ్లింగ్ ప్రక్రియను పూర్తిగా అర్థం చేసుకోవడం మరియు డీబగ్ చేయడం సులభం చేస్తుంది.
ఆధునిక జావాస్క్రిప్ట్కు డేటా సేకరించడం మరియు పాస్ చేయడం వంటి లోపం నిర్వహణ చాలా అవసరం. తగిన దోష నిర్వహణ పద్ధతులను చేర్చడం చాలా అవసరం , మీ అసమకాలీకరణ ఫంక్షన్లలో. డేటా రిట్రీవింగ్ ప్రాసెస్లో (నెట్వర్క్ సమస్యలు లేదా సర్వర్ ఇబ్బందులు) లోపం ఉన్నట్లయితే ప్రోగ్రామ్ క్రాష్ కాకుండా ఉండేలా ఇది నిర్ధారిస్తుంది. మొత్తం యాప్ను క్రాష్ చేయడానికి బదులుగా, ఎర్రర్ మెసేజ్లు గుర్తించబడతాయి మరియు చక్కగా నిర్వహించబడతాయి, కొన్నిసార్లు సమస్య గురించి వినియోగదారుని హెచ్చరిస్తుంది.
- నేను AJAX డేటాను మరొక ఫంక్షన్కి ఎలా పాస్ చేయాలి?
- డేటాను మరొక పద్ధతికి పంపడానికి, కాల్బ్యాక్ ఫంక్షన్ని ఉపయోగించండి AJAX కాల్ హ్యాండ్లర్.
- పాత్ర ఏమిటి సర్వర్ డేటాను నిర్వహించడంలో?
- డేటా మానిప్యులేషన్ను సులభతరం చేయడానికి, సర్వర్ యొక్క JSON స్ట్రింగ్ ప్రతిస్పందనను జావాస్క్రిప్ట్ ఆబ్జెక్ట్గా మారుస్తుంది.
- AJAX కాల్ సమయంలో నేను లోపాలను ఎలా నిర్వహించగలను?
- లోపాలను సమర్థవంతంగా నిర్వహించడానికి, aని ఉపయోగించండి a లో బ్లాక్ చేయండి అభ్యర్థించండి లేదా ఉపయోగించండి AJAXలో తిరిగి కాల్ చేయండి.
- నా చార్ట్లో డైనమిక్ డేటా అప్డేట్ చేయబడిందని నేను ఎలా నిర్ధారించుకోవాలి?
- కొత్త లేబుల్లు లేదా డేటాను జోడించిన తర్వాత, కాల్ చేయండి మీ మీద ఇటీవలి విలువలతో చార్ట్ను అప్డేట్ చేయడానికి అభ్యంతరం.
- ఎలా చేస్తుంది AJAX అభ్యర్థనలతో సహాయం చేయాలా?
- అసమకాలిక కోడ్ మరింత సింక్రోనస్గా కనిపించేలా చేస్తుంది, రీడబిలిటీని మరియు AJAX కాల్ ఎర్రర్ హ్యాండ్లింగ్ను మెరుగుపరుస్తుంది.
డైనమిక్ ఆన్లైన్ అప్లికేషన్లను అభివృద్ధి చేస్తున్నప్పుడు, AJAX సక్సెస్ ఫంక్షన్ నుండి మీ కోడ్లోని ఇతర విభాగాలకు డేటా బదిలీ అవసరం. మీరు క్లీన్, రీయూజబుల్ కోడ్ని నిర్ధారించుకోవచ్చు మరియు మాడ్యులర్ ఫంక్షన్లను ఉపయోగించడం ద్వారా ఈ ప్రక్రియను వేగవంతం చేయవచ్చు.
ఇంకా, డెవలపర్లు వంటి వ్యూహాలను ఉపయోగించడం ద్వారా అసమకాలిక డేటాను మెరుగ్గా నిర్వహించవచ్చు మరియు , ఇది చదవడానికి మరియు నిర్వహణ సామర్థ్యాన్ని మెరుగుపరుస్తుంది. లోపాలను సరిగ్గా నిర్వహించినప్పుడు, పరిష్కారం నమ్మదగినదిగా మరియు ఉపయోగించడానికి సులభమైనదిగా మారుతుంది.
- j క్వెరీలో AJAX అభ్యర్థనలను వివరిస్తుంది మరియు అసమకాలిక జావాస్క్రిప్ట్ ప్రోగ్రామింగ్ యొక్క పూర్తి విచ్ఛిన్నతను అందిస్తుంది. మీరు ఇక్కడ మరింత వివరణాత్మక ఉదాహరణలను కనుగొనవచ్చు j క్వెరీ AJAX డాక్యుమెంటేషన్ .
- డైనమిక్ డేటాసెట్లు మరియు చార్ట్ కాన్ఫిగరేషన్లను సెటప్ చేయడంతో సహా డేటాను దృశ్యమానం చేయడం కోసం Chart.jsని ఎలా ఉపయోగించాలనే దానిపై వివరణాత్మక డాక్యుమెంటేషన్ను అందిస్తుంది: Chart.js డాక్యుమెంటేషన్ .
- JavaScript యొక్క పొందడం API మరియు అసమకాలిక ప్రోగ్రామింగ్ కోసం వాగ్దానాలతో దాని వినియోగానికి లోతైన మార్గదర్శిని అందిస్తుంది: MDN వెబ్ డాక్స్ - APIని పొందండి .
- బహుళ కోడ్ ఉదాహరణలతో JavaScriptలో అసమకాలిక ఫంక్షన్లను నిర్వహించడానికి async/వెయిట్ యొక్క ఉపయోగాన్ని వివరిస్తుంది: JavaScript.info - Async/వెయిట్ .