Scribble Maps Blog
← All posts

Scribble Maps Blog

អ្នកអភិវឌ្ឍន៍៖ ការសន្សំប្រាក់កាស Google API ជាមួយ Autocomplete

មានអ្នកឈ្នះជាច្រើនជាមួយនឹងការកំណត់តម្លៃ API ថ្មីរបស់ Google។ ទោះជាយ៉ាងណាក៏ដោយ ប្រសិនបើកម្មវិធីរបស់អ្នកកំពុងប្រើប្រាស់មុខងារផែនទីទាំងមូល ហើយអ្នកមានអ្នកប្រើប្រាស់ច្រើន អ្នកប្រហែលជាឃើញថាកញ្ចប់ថវិការបស់អ្នកនឹងចាប់ផ្តើមធ្លាក់ចុះយ៉ាងលឿន។ មុខងារពីរដែលនឹងទាញយកដោយផ្ទាល់ពីកញ្ចប់ថវិការបស់អ្នក ហើយមិនស្ថិតនៅក្រោមកូតាឥតគិតថ្លៃប្រចាំថ្ងៃគឺ autocomplete និង place search។

ប្រសិនបើអ្នកប្រើអាជ្ញាប័ណ្ណ Google របស់អ្នកជាមួយ Scribble Maps API យើងធ្វើការបង្កើនប្រសិទ្ធភាពទាំងនេះមួយចំនួនរួចជាស្រេច ប៉ុន្តែប្រសិនបើអ្នកកំពុងបង្កើតការអនុវត្តផ្ទាល់ខ្លួនរបស់អ្នកដោយផ្ទាល់នៅលើ Google Maps API នោះមានការធ្វើបច្ចុប្បន្នភាពដ៏សាមញ្ញមួយដែលអ្នកអាចធ្វើបានដើម្បីសន្សំប្រាក់កាស autocomplete ខ្លះ។

មុខងារ auto-complete ស្តង់ដារនឹងផ្ញើសំណើ auto-complete រាល់ពេលដែលមានការផ្លាស់ប្តូរនៅក្នុងការបញ្ចូល។ វាអាចកាត់បន្ថយចំនួនប្រាក់កាសដែលបានប្រើប្រាស់យ៉ាងច្រើនដោយដាក់ timeout នៅពេលដែលការបញ្ចូលផ្លាស់ប្តូរ។

នេះជាឧទាហរណ៍មូលដ្ឋានបំផុត។

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

ដូច្នេះរាល់ពេលដែលអ្នកប្រើប្រាស់ចាប់ផ្តើមវាយបញ្ចូលក្នុងប្រអប់បញ្ចូល មុខងារ autocomplete នឹងមិនដំណើរការទេ រហូតទាល់តែមានការពន្យារពេលមួយភ្លែត។ ការពន្យារពេល 250ms អាចត្រូវបានកាត់បន្ថយដើម្បីឱ្យ autocomplete ដំណើរការញឹកញាប់ជាងមុន។ ប្រសិនបើអ្នកប្រើប្រាស់វាយពាក្យ "Toronto" យ៉ាងលឿន នោះមានតែការហៅ auto-complete តែមួយប៉ុណ្ណោះដែលនឹងត្រូវអនុវត្ត ជំនួសឱ្យ 8 ដងនៅពេលដែលអ្នកប្រើប្រាស់ស្ទាក់ស្ទើរ។

យើងរកឃើញថាការពន្យារពេលកំណត់ពេលដំណើរការល្អបំផុត។ ចំណុចសំខាន់មួយចំពោះបញ្ហានេះគឺត្រូវប្រាកដថាចំណុចប្រទាក់អ្នកប្រើបង្ហាញថាការស្វែងរកកំពុងបន្តនៅពេលពួកគេកំពុងវាយ។ ក្នុងករណីរបស់យើង យើងប្រើរូបតំណាងវិលដែលមានចលនា (animated spinner)។ វិធីនេះ ប្រសិនបើអ្នកប្រើប្រាស់កំពុងវាយយ៉ាងលឿន ហើយមិនឃើញលទ្ធផល រូបតំណាងវិលដែលមានចលនានឹងផ្តល់ឱ្យពួកគេនូវការផ្អាកគ្រប់គ្រាន់ដើម្បីមើលលទ្ធផល។

គួរកត់សម្គាល់ថាការអនុវត្តវិធីនេះគឺអនុលោមតាមលក្ខខណ្ឌប្រើប្រាស់បច្ចុប្បន្នរបស់ពួកគេ។ អ្វីដែលវិធីសាស្ត្រនេះធ្វើជាសំខាន់គឺគ្រាន់តែកម្រិតចំនួននៃការហៅ autocomplete ចេញពីអ្នកប្រើប្រាស់តែប៉ុណ្ណោះ។
← All posts