Scribble Maps Blog
← All posts

Scribble Maps Blog

Προγραμματιστές: Εξοικονόμηση Google API Credits με το Autocomplete

Υπάρχουν πολλοί κερδισμένοι με τη νέα τιμολόγηση του Google API. Ωστόσο, εάν η εφαρμογή σας χρησιμοποιεί ολόκληρη τη σουίτα λειτουργιών χαρτογράφησης και έχετε πολλούς χρήστες, μπορεί να διαπιστώσετε ότι το απόθεμά σας θα αρχίσει να μειώνεται γρήγορα. Δύο λειτουργίες που θα αντλήσουν απευθείας από το απόθεμά σας και δεν υπόκεινται στο καθημερινό δωρεάν όριο είναι η αυτόματη συμπλήρωση (autocomplete) και η αναζήτηση μερών (place search).

Εάν χρησιμοποιείτε την άδεια Google με το Scribble Maps API, κάνουμε μερικές από αυτές τις βελτιστοποιήσεις αυτόματα, αλλά εάν δημιουργείτε τη δική σας προσαρμοσμένη υλοποίηση απευθείας πάνω στο Google Maps API, υπάρχει μια απλή ενημέρωση που μπορείτε να κάνετε για να εξοικονομήσετε μερικά credits αυτόματης συμπλήρωσης.

Η τυπική λειτουργία αυτόματης συμπλήρωσης θα στέλνει ένα αίτημα αυτόματης συμπλήρωσης με κάθε αλλαγή στην εισαγωγή κειμένου. Είναι δυνατό να μειώσετε σημαντικά την ποσότητα των credits που χρησιμοποιούνται εισάγοντας ένα χρονικό όριο (timeout) όταν αλλάζει η εισαγωγή.

Ακολουθεί ένα πολύ βασικό παράδειγμα.

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

Έτσι, κάθε φορά που ένας χρήστης αρχίζει να πληκτρολογεί στην εισαγωγή, η αυτόματη συμπλήρωση δεν θα ενεργοποιείται μέχρι να υπάρξει μια στιγμιαία καθυστέρηση. Η καθυστέρηση των 250ms μπορεί να μειωθεί για να ενεργοποιείται η αυτόματη συμπλήρωση πιο συχνά. Εάν ο χρήστης πληκτρολογήσει γρήγορα "Toronto", θα εκτελεστεί μόνο μία κλήση αυτόματης συμπλήρωσης αντί για 8 όταν ο χρήστης διστάσει.

Διαπιστώνουμε ότι η χρονικά ρυθμισμένη καθυστέρηση λειτουργεί καλύτερα. Ένα κρίσιμο σημείο σε αυτό είναι να διασφαλίσετε ότι η διεπαφή χρήστη υποδεικνύει ότι πραγματοποιείται αναζήτηση καθώς πληκτρολογούν. Στη δική μας περίπτωση χρησιμοποιούμε ένα κινούμενο spinner. Με αυτόν τον τρόπο, εάν ο χρήστης πληκτρολογεί γρήγορα και δεν βλέπει αποτελέσματα, το κινούμενο spinner θα του δώσει αρκετό χρόνο αναμονής για να δει τα αποτελέσματα.

Θα πρέπει να σημειωθεί ότι η εφαρμογή αυτού είναι σύμφωνη με τους τρέχοντες όρους χρήσης τους. Αυτό που ουσιαστικά κάνει αυτή η μέθοδος είναι να περιορίζει (throttle) την ποσότητα των εξερχόμενων κλήσεων αυτόματης συμπλήρωσης από τον χρήστη.
← All posts