Wednesday, November 30, 2016

When should you start autocompleting a search in autocomplete search field?


We're implementing an Autocomplete search field on a website we're working on. However the question arises:



At what point should you start showing the autocomplete results?


mockup


download bmml source – Wireframes created with Balsamiq Mockups


There are a few options that we have:



  1. Start showing results immediately when the user starts typing (could get in the way if people are typing accidently, plus there's possibly a server hit to do so here)

  2. Wait until two characters have been entered so that you can then be more confident that people are typing in this field intentionally (risks not returning autocomplete answers for two-digit queries such as C#)

  3. Add a delay of x ms before returning results (if so, what is the ideal delay?)


Is there an ideal way of doing this? I'm concerned that flashing up results too quickly will annoy people (just as with hoverover menus and the like), but not presenting the results quickly enough negates the purpose of having autocomplete in the first place.




Answer



Perhaps a hybrid approach would make sense. What I'm thinking would be to link the delay to the number of characters already entered, with a longer delay for fewer characters.


If a user has only typed 'K', they're probably going to type a lot more, so an instant suggestion would return more results (less likely to have their target at the top), risk more flickering (as they keep typing), and increase server hits (since they're likelier to keep typing regardless. If that's all they're going to type, they'll pause and the autocomplete they might already be expecting would kick in.


By the time they've typed 'Kittens on Skat', the reverse of all of the above is true, so a shorter-to-zero delay would be more appropriate.


No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...