Scribble Maps Blog
டெவலப்பர்கள்: Autocomplete மூலம் Google API கிரெடிட்களைச் சேமித்தல்
கூகுளின் புதிய API விலையிடல் மூலம் பலருக்குப் பயன் கிடைத்துள்ளது. இருப்பினும், உங்கள் செயலி முழுமையான மேப்பிங் செயல்பாடுகளைப் பயன்படுத்துகிறது மற்றும் உங்களுக்கு அதிக பயனர்கள் இருந்தால், உங்கள் கிரெடிட் இருப்பு வேகமாக குறையத் தொடங்குவதை நீங்கள் காணலாம். தினசரி இலவச ஒதுக்கீட்டிற்கு உட்படாமல், உங்கள் இருப்பிலிருந்து நேரடியாகக் கழிக்கப்படும் இரண்டு செயல்பாடுகள் autocomplete மற்றும் place search ஆகும்.
Scribble Maps API உடன் உங்கள் கூகுள் உரிமத்தைப் பயன்படுத்தினால், இந்த மேம்படுத்தல்களில் சிலவற்றை நாங்கள் இயல்பாகவே செய்கிறோம், ஆனால் கூகுள் மேப்ஸ் API இன் மேல் நேரடியாக உங்கள் சொந்த தனிப்பயன் செயலாக்கத்தை உருவாக்குகிறீர்கள் என்றால், சில autocomplete கிரெடிட்களைச் சேமிக்க நீங்கள் செய்யக்கூடிய எளிய அப்டேட் ஒன்று உள்ளது.
நிலையான ஆட்டோ-கம்ப்ளீட் செயல்பாடானது, உள்ளீட்டில் (input) ஏற்படும் ஒவ்வொரு மாற்றத்திற்கும் ஒரு ஆட்டோ-கம்ப்ளீட் கோரிக்கையை அனுப்பும். உள்ளீடு மாறும்போது ஒரு டைம்அவுட்டை (timeout) வைப்பதன் மூலம் பயன்படுத்தப்படும் கிரெடிட்களின் அளவை கணிசமாகக் குறைக்க முடியும்.
இதோ ஒரு மிக அடிப்படையான உதாரணம்.
எனவே ஒவ்வொரு முறையும் பயனர் உள்ளீட்டில் தட்டச்சு செய்யத் தொடங்கும்போது, ஒரு சிறிய தாமதம் ஏற்படும் வரை autocomplete இயங்காது. Autocomplete அடிக்கடி இயங்குவதற்கு இந்த 250ms தாமதத்தைக் குறைக்கலாம். பயனர் விரைவாக "Toronto" என்று தட்டச்சு செய்தால், பயனர் சற்று நிறுத்தும்போது 8 முறைக்கு பதிலாக ஒரே ஒரு ஆட்டோ-கம்ப்ளீட் கோரிக்கை மட்டுமே இயக்கப்படும்.
நேர தாமதத்தை (timed delay) அமைப்பது சிறப்பாகச் செயல்படுவதை நாங்கள் காண்கிறோம். இதில் ஒரு முக்கியமான விஷயம் என்னவென்றால், அவர்கள் தட்டச்சு செய்யும்போது தேடல் நடந்து கொண்டிருக்கிறது என்பதை பயனர் இடைமுகம் (user interface) காட்டுகிறதா என்பதை உறுதிப்படுத்துவதாகும். எங்கள் விஷயத்தில் நாங்கள் ஒரு அனிமேஷன் ஸ்பின்னரைப் பயன்படுத்துகிறோம். இதன் மூலம் பயனர் விரைவாக தட்டச்சு செய்து முடிவுகள் காட்டப்படாமல் இருக்கும்போது, அனிமேஷன் ஸ்பின்னர் அவர்களுக்கு முடிவுகளைப் பார்க்க போதுமான இடைவெளியைக் கொடுக்கும்.
இதைச் செயல்படுத்துவது அவர்களின் தற்போதைய பயன்பாட்டு விதிமுறைகளுக்கு இணங்க உள்ளது என்பது குறிப்பிடத்தக்கது. இந்த முறை அடிப்படையில் பயனரிடமிருந்து வெளிச்செல்லும் autocomplete கோரிக்கைகளின் எண்ணிக்கையைக் கட்டுப்படுத்துகிறது (throttle).
Scribble Maps API உடன் உங்கள் கூகுள் உரிமத்தைப் பயன்படுத்தினால், இந்த மேம்படுத்தல்களில் சிலவற்றை நாங்கள் இயல்பாகவே செய்கிறோம், ஆனால் கூகுள் மேப்ஸ் API இன் மேல் நேரடியாக உங்கள் சொந்த தனிப்பயன் செயலாக்கத்தை உருவாக்குகிறீர்கள் என்றால், சில autocomplete கிரெடிட்களைச் சேமிக்க நீங்கள் செய்யக்கூடிய எளிய அப்டேட் ஒன்று உள்ளது.
நிலையான ஆட்டோ-கம்ப்ளீட் செயல்பாடானது, உள்ளீட்டில் (input) ஏற்படும் ஒவ்வொரு மாற்றத்திற்கும் ஒரு ஆட்டோ-கம்ப்ளீட் கோரிக்கையை அனுப்பும். உள்ளீடு மாறும்போது ஒரு டைம்அவுட்டை (timeout) வைப்பதன் மூலம் பயன்படுத்தப்படும் கிரெடிட்களின் அளவை கணிசமாகக் குறைக்க முடியும்.
இதோ ஒரு மிக அடிப்படையான உதாரணம்.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//put auto-complete calls in here
}, 250);
}
எனவே ஒவ்வொரு முறையும் பயனர் உள்ளீட்டில் தட்டச்சு செய்யத் தொடங்கும்போது, ஒரு சிறிய தாமதம் ஏற்படும் வரை autocomplete இயங்காது. Autocomplete அடிக்கடி இயங்குவதற்கு இந்த 250ms தாமதத்தைக் குறைக்கலாம். பயனர் விரைவாக "Toronto" என்று தட்டச்சு செய்தால், பயனர் சற்று நிறுத்தும்போது 8 முறைக்கு பதிலாக ஒரே ஒரு ஆட்டோ-கம்ப்ளீட் கோரிக்கை மட்டுமே இயக்கப்படும்.
நேர தாமதத்தை (timed delay) அமைப்பது சிறப்பாகச் செயல்படுவதை நாங்கள் காண்கிறோம். இதில் ஒரு முக்கியமான விஷயம் என்னவென்றால், அவர்கள் தட்டச்சு செய்யும்போது தேடல் நடந்து கொண்டிருக்கிறது என்பதை பயனர் இடைமுகம் (user interface) காட்டுகிறதா என்பதை உறுதிப்படுத்துவதாகும். எங்கள் விஷயத்தில் நாங்கள் ஒரு அனிமேஷன் ஸ்பின்னரைப் பயன்படுத்துகிறோம். இதன் மூலம் பயனர் விரைவாக தட்டச்சு செய்து முடிவுகள் காட்டப்படாமல் இருக்கும்போது, அனிமேஷன் ஸ்பின்னர் அவர்களுக்கு முடிவுகளைப் பார்க்க போதுமான இடைவெளியைக் கொடுக்கும்.
இதைச் செயல்படுத்துவது அவர்களின் தற்போதைய பயன்பாட்டு விதிமுறைகளுக்கு இணங்க உள்ளது என்பது குறிப்பிடத்தக்கது. இந்த முறை அடிப்படையில் பயனரிடமிருந்து வெளிச்செல்லும் autocomplete கோரிக்கைகளின் எண்ணிக்கையைக் கட்டுப்படுத்துகிறது (throttle).