Scribble Maps Blog
← All posts

Scribble Maps Blog

ডেভেলপারদের জন্য: অটো-কমপ্লিট ব্যবহার করে গুগল এপিআই ক্রেডিট সাশ্রয় করা

গুগলের নতুন এপিআই প্রাইসিংয়ের ফলে অনেকেই লাভবান হয়েছেন। তবে, আপনার অ্যাপ যদি ম্যাপিংয়ের সমস্ত ফিচার ব্যবহার করে এবং আপনার প্রচুর ব্যবহারকারী থাকে, তবে আপনি দেখতে পাবেন যে আপনার ক্রেডিট দ্রুত শেষ হয়ে যাচ্ছে। দুটি ফাংশন যা সরাসরি আপনার ক্রেডিট থেকে কেটে নেওয়া হয় এবং দৈনিক ফ্রি কোটার আওতাভুক্ত নয়, তা হলো অটো-কমপ্লিট এবং প্লেস সার্চ।

আপনি যদি স্ক্রিবল ম্যাপস এপিআই-এর সাথে আপনার গুগল লাইসেন্স ব্যবহার করেন, তবে আমরা এই অপ্টিমাইজেশনগুলোর কিছু অংশ স্বয়ংক্রিয়ভাবেই করে থাকি, কিন্তু আপনি যদি সরাসরি গুগল ম্যাপস এপিআই-এর ওপর আপনার নিজস্ব কাস্টম ইমপ্লিমেন্টেশন তৈরি করেন, তবে কিছু অটো-কমপ্লিট ক্রেডিট বাঁচাতে আপনি একটি সহজ আপডেট করতে পারেন।

স্ট্যান্ডার্ড অটো-কমপ্লিট ফাংশনালিটি ইনপুটের প্রতিটি পরিবর্তনের সাথে একটি করে অটো-কমপ্লিট রিকোয়েস্ট পাঠায়। ইনপুট পরিবর্তনের সময় একটি টাইমআউট যুক্ত করে ব্যবহৃত ক্রেডিটের পরিমাণ উল্লেখযোগ্যভাবে কমিয়ে আনা সম্ভব।

এখানে একটি অত্যন্ত সাধারণ উদাহরণ দেওয়া হলো।

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

তাই প্রতিবার যখন একজন ব্যবহারকারী ইনপুটে টাইপ করা শুরু করবেন, তখন একটি সাময়িক বিলম্ব না হওয়া পর্যন্ত অটো-কমপ্লিট ফায়ার হবে না। অটো-কমপ্লিট আরও ঘন ঘন ফায়ার করার জন্য ২৫০ মিলি-সেকেন্ডের এই বিলম্বটি কমিয়ে আনা যেতে পারে। ব্যবহারকারী যদি দ্রুত "Toronto" টাইপ করেন, তবে ব্যবহারকারী থামার পর ৮টি রিকোয়েস্টের পরিবর্তে কেবল একটি অটো-কমপ্লিট কল কার্যকর হবে।

আমরা দেখেছি যে এই টাইমড ডিলে বা বিলম্ব সবচেয়ে ভালো কাজ করে। এর একটি গুরুত্বপূর্ণ বিষয় হলো ব্যবহারকারী যখন টাইপ করছেন, তখন ইউজার ইন্টারফেসে যেন নির্দেশ করা হয় যে একটি অনুসন্ধান চলছে। আমাদের ক্ষেত্রে আমরা একটি অ্যানিমেটেড স্পিনার ব্যবহার করি। এর ফলে ব্যবহারকারী যদি দ্রুত টাইপ করেন এবং ফলাফল দেখতে না পান, তবে অ্যানিমেটেড স্পিনারটি তাদের ফলাফল দেখার জন্য পর্যাপ্ত সময় অপেক্ষা করতে সাহায্য করবে।

এটি উল্লেখ করা উচিত যে এটি বাস্তবায়ন করা তাদের বর্তমান ব্যবহারের শর্তাবলীর (terms of use) সাথে সামঞ্জস্যপূর্ণ। এই পদ্ধতিটি মূলত ব্যবহারকারীর কাছ থেকে পাঠানো আউটবাউন্ড অটো-কমপ্লিট কলের পরিমাণকে নিয়ন্ত্রণ (throttle) করে।
← All posts