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?
download bmml source – Wireframes created with Balsamiq Mockups
There are a few options that we have:
- 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)
- 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#)
- 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