Scribble Maps Blog
డెవలపర్లు: ఆటోకంప్లీట్తో గూగుల్ API క్రెడిట్లను ఆదా చేయడం
గూగుల్ యొక్క కొత్త API ధరల విధానంతో చాలా మందికి ప్రయోజనం చేకూరింది. అయితే, మీ యాప్ మ్యాపింగ్ ఫంక్షనాలిటీ యొక్క పూర్తి సూట్ను ఉపయోగిస్తుంటే మరియు మీకు చాలా మంది వినియోగదారులు ఉంటే, మీ క్రెడిట్ పూల్ వేగంగా తగ్గిపోవడాన్ని మీరు గమనించవచ్చు. మీ పూల్ నుండి నేరుగా క్రెడిట్లను తీసుకునే మరియు రోజువారీ ఉచిత కోటా పరిధిలోకి రాని రెండు ఫంక్షన్లు ఆటోకంప్లీట్ మరియు ప్లేస్ సెర్చ్.
మీరు Scribble Maps API తో మీ గూగుల్ లైసెన్స్ను ఉపయోగిస్తే, మేము ఈ ఆప్టిమైజేషన్లలో కొన్నింటిని ముందే అందిస్తాము, కానీ మీరు నేరుగా గూగుల్ మ్యాప్స్ API పై మీ స్వంత కస్టమ్ ఇంప్లిమెంటేషన్ను రూపొందిస్తుంటే, మీకు కొన్ని ఆటోకంప్లీట్ క్రెడిట్లను ఆదా చేయడానికి మీరు చేయగలిగే ఒక సాధారణ అప్డేట్ ఉంది.
ప్రామాణిక ఆటో-కంప్లీట్ ఫంక్షనాలిటీ ఇన్పుట్లో ప్రతి మార్పుతోనూ ఒక ఆటో-కంప్లీట్ అభ్యర్థనను పంపుతుంది. ఇన్పుట్ మారినప్పుడు టైమ్అవుట్ పెట్టడం ద్వారా ఉపయోగించే క్రెడిట్ల పరిమాణాన్ని గణనీయంగా తగ్గించడం సాధ్యమవుతుంది.
ఇక్కడ ఒక చాలా ప్రాథమిక ఉదాహరణ ఉంది.
కాబట్టి వినియోగదారు ఇన్పుట్లో టైప్ చేయడం ప్రారంభించిన ప్రతిసారీ, ఒక క్షణ కాలం ఆలస్యం అయ్యే వరకు ఆటోకంప్లీట్ రన్ అవ్వదు. ఆటోకంప్లీట్ మరింత తరచుగా రన్ అవ్వడానికి 250ms ఆలస్యాన్ని తగ్గించవచ్చు. వినియోగదారు త్వరగా "Toronto" అని టైప్ చేస్తే, వినియోగదారు ఆగినప్పుడు 8 సార్లు రన్ అవ్వడానికి బదులుగా కేవలం ఒకే ఒక ఆటో-కంప్లీట్ కాల్ మాత్రమే అమలు చేయబడుతుంది.
టైమ్డ్ డిలే (సమయానుకూల ఆలస్యం) ఉత్తమంగా పనిచేస్తుందని మేము కనుగొన్నాము. దీనికి ఒక ముఖ్యమైన విషయం ఏమిటంటే, వారు టైప్ చేస్తున్నప్పుడు శోధన జరుగుతోందని వినియోగదారు ఇంటర్ఫేస్ సూచించేలా చూసుకోవడం. మా విషయంలో మేము యానిమేటెడ్ స్పిన్నర్ను ఉపయోగిస్తాము. ఈ విధంగా వినియోగదారు త్వరగా టైప్ చేస్తూ ఫలితాలను చూడలేకపోతే, యానిమేటెడ్ స్పిన్నర్ వారికి ఫలితాలను చూడటానికి తగినంత విరామాన్ని ఇస్తుంది.
దీన్ని అమలు చేయడం వారి ప్రస్తుత వినియోగ నిబంధనలకు అనుగుణంగానే ఉంటుందని గమనించాలి. ఈ పద్ధతి ప్రాథమికంగా చేసేదల్లా వినియోగదారు నుండి వెళ్లే అవుట్బౌండ్ ఆటోకంప్లీట్ కాల్ల పరిమాణాన్ని నియంత్రించడం (throttle చేయడం) మాత్రమే.
మీరు Scribble Maps API తో మీ గూగుల్ లైసెన్స్ను ఉపయోగిస్తే, మేము ఈ ఆప్టిమైజేషన్లలో కొన్నింటిని ముందే అందిస్తాము, కానీ మీరు నేరుగా గూగుల్ మ్యాప్స్ API పై మీ స్వంత కస్టమ్ ఇంప్లిమెంటేషన్ను రూపొందిస్తుంటే, మీకు కొన్ని ఆటోకంప్లీట్ క్రెడిట్లను ఆదా చేయడానికి మీరు చేయగలిగే ఒక సాధారణ అప్డేట్ ఉంది.
ప్రామాణిక ఆటో-కంప్లీట్ ఫంక్షనాలిటీ ఇన్పుట్లో ప్రతి మార్పుతోనూ ఒక ఆటో-కంప్లీట్ అభ్యర్థనను పంపుతుంది. ఇన్పుట్ మారినప్పుడు టైమ్అవుట్ పెట్టడం ద్వారా ఉపయోగించే క్రెడిట్ల పరిమాణాన్ని గణనీయంగా తగ్గించడం సాధ్యమవుతుంది.
ఇక్కడ ఒక చాలా ప్రాథమిక ఉదాహరణ ఉంది.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//put auto-complete calls in here
}, 250);
}
కాబట్టి వినియోగదారు ఇన్పుట్లో టైప్ చేయడం ప్రారంభించిన ప్రతిసారీ, ఒక క్షణ కాలం ఆలస్యం అయ్యే వరకు ఆటోకంప్లీట్ రన్ అవ్వదు. ఆటోకంప్లీట్ మరింత తరచుగా రన్ అవ్వడానికి 250ms ఆలస్యాన్ని తగ్గించవచ్చు. వినియోగదారు త్వరగా "Toronto" అని టైప్ చేస్తే, వినియోగదారు ఆగినప్పుడు 8 సార్లు రన్ అవ్వడానికి బదులుగా కేవలం ఒకే ఒక ఆటో-కంప్లీట్ కాల్ మాత్రమే అమలు చేయబడుతుంది.
టైమ్డ్ డిలే (సమయానుకూల ఆలస్యం) ఉత్తమంగా పనిచేస్తుందని మేము కనుగొన్నాము. దీనికి ఒక ముఖ్యమైన విషయం ఏమిటంటే, వారు టైప్ చేస్తున్నప్పుడు శోధన జరుగుతోందని వినియోగదారు ఇంటర్ఫేస్ సూచించేలా చూసుకోవడం. మా విషయంలో మేము యానిమేటెడ్ స్పిన్నర్ను ఉపయోగిస్తాము. ఈ విధంగా వినియోగదారు త్వరగా టైప్ చేస్తూ ఫలితాలను చూడలేకపోతే, యానిమేటెడ్ స్పిన్నర్ వారికి ఫలితాలను చూడటానికి తగినంత విరామాన్ని ఇస్తుంది.
దీన్ని అమలు చేయడం వారి ప్రస్తుత వినియోగ నిబంధనలకు అనుగుణంగానే ఉంటుందని గమనించాలి. ఈ పద్ధతి ప్రాథమికంగా చేసేదల్లా వినియోగదారు నుండి వెళ్లే అవుట్బౌండ్ ఆటోకంప్లీట్ కాల్ల పరిమాణాన్ని నియంత్రించడం (throttle చేయడం) మాత్రమే.