الأدلة

أنشئ مربع اقتراحات "هل تقصد" باستخدام الإكمال التلقائي

يعمل مربع "هل تقصد" على أفضل وجه عندما يظهر بهدوء، ويعرض قائمة قصيرة، ويبتعد عن الطريق إذا لم يناسب أي من الاقتراحات. ونقطة نهاية الإكمال التلقائي مبنية لهذا النمط تحديدًا.

الطلب

GET /v1/autocomplete?q=Baker Stret&limit=4
{
  "status": "ok",
  "query": "Baker Stret",
  "suggestions": [
    {"text": "Baker Street, London, UK", "place_id": "abc123"},
    {"text": "Baker Street, York, UK", "place_id": "abc789"}
  ]
}

لاحظ أن خطأ إملائيًا مثل "Stret" في الاستعلام لا يمنع عودة اقتراحات معقولة، لأن نقطة النهاية مبنية للعمل مع مدخلات غير مثالية، وهذه هي الغاية من مربع الاقتراحات أصلًا.

مثال ثانٍ: لا اقتراحات على الإطلاق

ليس كل استعلام، سواء احتوى على خطأ إملائي أم لا، ينتج تطابقًا مفيدًا.

GET /v1/autocomplete?q=Zzqxlm Nonexistent Rd&limit=4
{
  "status": "ok",
  "query": "Zzqxlm Nonexistent Rd",
  "suggestions": []
}

مصفوفة الاقتراحات الفارغة هنا استجابة صحيحة، وليست علامة على خلل في الطلب. صمّم المربع بحيث يختفي بهدوء عندما يحدث ذلك، بدلًا من عرض قائمة منسدلة فارغة أو حالة خطأ ظاهرة لمدخلات ليس لها ببساطة تطابق جيد.

عرض القائمة

اعرض الحقل text من كل اقتراح كتسمية ظاهرة، واحتفظ بالمعرّف place_id مرتبطًا بالاقتراح الذي يُنقر عليه، لأن هذا المعرّف هو ما تمرره لاحقًا لتحويل العنوان الكامل بدلًا من إعادة تحليل نص العرض.

إبقاؤه اختياريًا

أهم جزء في هذا النمط، خاصة في موقع لا يشغّل JavaScript من جهة العميل لإدارة التفاعل، هو أن يظل الحقل يقبل العنوان المكتوب مباشرة عند إرسال النموذج، سواء نُقر على اقتراح أم لا. فمربع الاقتراحات الذي يمنع الإرسال إلى أن يُختار أحد خياراته يحوّل التلميح المفيد إلى شرط إلزامي، ويصبح أي عنوان غير موجود في قائمة الاقتراحات لسبب مشروع مستحيل الإرسال.

حالة حدّية تستحق الاختبار

العناوين المكتوبة بنظام كتابة غير الذي اختُبر به مربع الاقتراحات أساسًا، أو أسماء الأماكن المنقولة حرفيًا، جزء حقيقي من معظم قواعد بيانات العناوين وتستحق المعاملة نفسها، أي "الرجوع إلى النص العادي"، مثل أي استعلام آخر بلا تطابق. لا تفترض أن غياب الاقتراحات لمدخلات غير معتادة يعني أن المدخلات نفسها غير صالحة، لأن الاستجابة الصحيحة غالبًا هي ببساطة السماح للعميل بإرسال ما كتبه بالضبط.

الحد من الطلبات

اضبط limit على رقم صغير، فثلاثة إلى خمسة تكفي عادة لمربع الاقتراحات، لأن القائمة الأطول تُفقد النظرة البصرية السريعة غايتها. طبّق تأخيرًا (debounce) على الاستدعاءات بحيث لا يُرسل الطلب إلا بعد توقف قصير في الكتابة، مما يُبقي إجمالي عدد الطلبات في الجلسة منخفضًا.

التكلفة لكل جلسة

قد يطلق حقل عنوان نموذجي بضعة استدعاءات للإكمال التلقائي لكل زائر أثناء كتابته وتصحيحه لنفسه، كل منها طلب واحد. وهذا جزء صغير من 2,500 طلب مجاني يوميًا المضمنة مع كل مفتاح، أو المتاحة من عنوان واحد بدون مفتاح، حتى في نموذج يستقبل زيارات كبيرة.

مربع الاقتراحات المبني جيدًا يلتقط الأخطاء الإملائية بهدوء ويتنحى جانبًا أمام أي شيء لا يتعرف عليه. تعريفات الحقول الكاملة موجودة في توثيق الإكمال التلقائي للعناوين.