Scribble Maps Blog
← All posts

Scribble Maps Blog

डेवलपर्स: ऑटो-कम्प्लीट के साथ Google API क्रेडिट्स की बचत करना

Google की नई API मूल्य निर्धारण नीति से कई लोगों को फायदा हुआ है। हालांकि, यदि आपका ऐप मैपिंग सुविधाओं के पूरे सुइट का उपयोग कर रहा है और आपके पास बहुत सारे उपयोगकर्ता हैं, तो आप पाएंगे कि आपका क्रेडिट पूल तेजी से घटने लगेगा। दो फ़ंक्शन जो सीधे आपके पूल से क्रेडिट लेते हैं और दैनिक मुफ्त कोटा के अंतर्गत नहीं आते हैं, वे हैं ऑटो-कम्प्लीट (autocomplete) और प्लेस सर्च (place search)।

यदि आप Scribble Maps API के साथ अपने Google लाइसेंस का उपयोग करते हैं, तो हम इनमें से कुछ अनुकूलन (optimizations) पहले से ही प्रदान करते हैं, लेकिन यदि आप सीधे Google Maps API के ऊपर अपना खुद का कस्टम इम्प्लीमेंटेशन बना रहे हैं, तो एक आसान अपडेट है जिसे करके आप अपने कुछ ऑटो-कम्प्लीट क्रेडिट्स बचा सकते हैं।

मानक ऑटो-कम्प्लीट कार्यक्षमता इनपुट में प्रत्येक परिवर्तन के साथ एक ऑटो-कम्प्लीट अनुरोध भेजती है। इनपुट बदलने पर टाइमआउट लगाकर उपयोग किए जाने वाले क्रेडिट की मात्रा को काफी कम करना संभव है।

यहाँ एक बहुत ही बुनियादी उदाहरण दिया गया है।

 var acTimeOut;  
 textSearchInput.onkeyup = function() {  
 clearTimeout(acTimeout);  
 acTimeout = setTimeout(function() {  
 //put auto-complete calls in here  
 }, 250);  
 }  

इसलिए हर बार जब कोई उपयोगकर्ता इनपुट में टाइप करना शुरू करता है, तो ऑटो-कम्प्लीट तब तक सक्रिय नहीं होगा जब तक कि एक क्षणिक देरी न हो। ऑटो-कम्प्लीट को अधिक बार सक्रिय करने के लिए 250ms की देरी को कम किया जा सकता है। यदि उपयोगकर्ता जल्दी से "Toronto" टाइप करता है, तो उपयोगकर्ता के रुकने पर 8 के बजाय केवल एक ऑटो-कम्प्लीट कॉल निष्पादित होगी।

हम पाते हैं कि समयबद्ध देरी (timed delay) सबसे अच्छा काम करती है। इसका एक महत्वपूर्ण बिंदु यह सुनिश्चित करना है कि उपयोगकर्ता इंटरफ़ेस यह संकेत दे कि उनके टाइप करते समय खोज चल रही है। हमारे मामले में हम एक एनिमेटेड स्पिनर का उपयोग करते हैं। इस तरह यदि उपयोगकर्ता तेजी से टाइप कर रहा है और परिणाम नहीं देख पा रहा है, तो एनिमेटेड स्पिनर उन्हें परिणाम देखने के लिए पर्याप्त समय देगा।

यह ध्यान दिया जाना चाहिए कि इसे लागू करना उनकी वर्तमान उपयोग की शर्तों (terms of use) के अनुरूप है। यह विधि अनिवार्य रूप से केवल उपयोगकर्ता की ओर से आउटबाउंड ऑटो-कम्प्लीट कॉल्स की मात्रा को नियंत्रित (throttle) करती है।
← All posts