Scribble Maps Blog
للمطورين: توفير رصيد Google API باستخدام الإكمال التلقائي
هناك الكثير من المستفيدين من أسعار واجهة برمجة التطبيقات (API) الجديدة من Google. ومع ذلك، إذا كان تطبيقك يستخدم مجموعة كاملة من وظائف الخرائط ولديك الكثير من المستخدمين، فقد تجد أن رصيدك سيبدأ في الانخفاض بسرعة. هناك وظيفتان تستهلكان مباشرة من رصيدك ولا تخضعان للحصة المجانية اليومية وهما الإكمال التلقائي (autocomplete) والبحث عن الأماكن (place search).
إذا كنت تستخدم ترخيص Google الخاص بك مع Scribble Maps API، فإننا نقوم ببعض هذه التحسينات تلقائيًا، ولكن إذا كنت تبني تطبيقك المخصص مباشرة فوق Google Maps API، فهناك تحديث بسيط يمكنك القيام به لتوفير بعض رصيد الإكمال التلقائي.
ترسل وظيفة الإكمال التلقائي القياسية طلب إكمال تلقائي مع كل تغيير في الإدخال. من الممكن تقليل كمية الرصيد المستخدمة بشكل كبير عن طريق وضع مهلة زمنية (timeout) عند تغيير الإدخال.
إليك مثال أساسي للغاية.
لذا، في كل مرة يبدأ فيها المستخدم في الكتابة في حقل الإدخال، لن يتم تشغيل الإكمال التلقائي حتى يحدث تأخير مؤقت. يمكن تقليل تأخير 250 مللي ثانية لجعل الإكمال التلقائي يعمل بشكل أسرع. إذا كتب المستخدم بسرعة "Toronto"، فسيتم تنفيذ طلب إكمال تلقائي واحد فقط بدلاً من 8 طلبات عندما يتردد المستخدم.
لقد وجدنا أن التأخير الزمني يعمل بشكل أفضل. نقطة حاسمة في هذا الأمر هي التأكد من أن واجهة المستخدم تشير إلى أن البحث جارٍ أثناء الكتابة. في حالتنا، نستخدم مؤشر تحميل متحرك (animated spinner). بهذه الطريقة، إذا كان المستخدم يكتب بسرعة ولا يرى نتائج، فإن المؤشر المتحرك سيعطيه فترة توقف كافية لرؤية النتائج.
تجدر الإشارة إلى أن تطبيق هذا متوافق مع شروط الاستخدام الحالية الخاصة بهم. كل ما تفعله هذه الطريقة أساسًا هو تقييد كمية طلبات الإكمال التلقائي الصادرة من المستخدم.
إذا كنت تستخدم ترخيص Google الخاص بك مع Scribble Maps API، فإننا نقوم ببعض هذه التحسينات تلقائيًا، ولكن إذا كنت تبني تطبيقك المخصص مباشرة فوق Google Maps API، فهناك تحديث بسيط يمكنك القيام به لتوفير بعض رصيد الإكمال التلقائي.
ترسل وظيفة الإكمال التلقائي القياسية طلب إكمال تلقائي مع كل تغيير في الإدخال. من الممكن تقليل كمية الرصيد المستخدمة بشكل كبير عن طريق وضع مهلة زمنية (timeout) عند تغيير الإدخال.
إليك مثال أساسي للغاية.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//put auto-complete calls in here
}, 250);
}
لذا، في كل مرة يبدأ فيها المستخدم في الكتابة في حقل الإدخال، لن يتم تشغيل الإكمال التلقائي حتى يحدث تأخير مؤقت. يمكن تقليل تأخير 250 مللي ثانية لجعل الإكمال التلقائي يعمل بشكل أسرع. إذا كتب المستخدم بسرعة "Toronto"، فسيتم تنفيذ طلب إكمال تلقائي واحد فقط بدلاً من 8 طلبات عندما يتردد المستخدم.
لقد وجدنا أن التأخير الزمني يعمل بشكل أفضل. نقطة حاسمة في هذا الأمر هي التأكد من أن واجهة المستخدم تشير إلى أن البحث جارٍ أثناء الكتابة. في حالتنا، نستخدم مؤشر تحميل متحرك (animated spinner). بهذه الطريقة، إذا كان المستخدم يكتب بسرعة ولا يرى نتائج، فإن المؤشر المتحرك سيعطيه فترة توقف كافية لرؤية النتائج.
تجدر الإشارة إلى أن تطبيق هذا متوافق مع شروط الاستخدام الحالية الخاصة بهم. كل ما تفعله هذه الطريقة أساسًا هو تقييد كمية طلبات الإكمال التلقائي الصادرة من المستخدم.