autocomplete输入延迟、匹配、选择:
1、输入:如果用户每输入一个字符进行一次搜索,返回数据太大,而且不准,所以添加了输入延时;
添加0.5s的输入延时后发现,用户输入名字后很快会输入回车,也就是在0.5s延迟前就会按下回车。
所以对返回数据做了截取,只取前10个。
另一种实现是输入即搜索,没有延迟,缺点是会发起很多个请求,不过交互体验比较好。
2、匹配:输入“aa”,返回的是“aab、aa”,并且aab在第一位;搜索“cc”,因为做了返回结果限制10个以内,结果中没有“ccz”,搜索结果不太准确,这种情况下,用户必须输入完全才能得到结果,autocomplete效果不明显。
3、选择:默认返回的第一个用户是高亮的,可按↑↓←→选择,选择时即选中,会替换输入框的人名和对应隐藏域的用户id。
autocomplete的使用场景:
1、用户每输入一个字符显示一次反馈的效果最好,保证返回结果及时;
2、筛选项不是很多的时候:比如Gmail中填写收件人会过滤联系人的mail(用户通常只记得一部分,需要提示,比人名搜索有更大的提示作用)、飞机的出发地选择等等,保证返回结果准确。
在我们的用户搜索中,返回结果没有回车及时,输入不完全时也不是很准确,所以认为这里使用“自动完成”的效果并不能达到预期。
用户搜索的交互确定:
1、回车搜索人名,精确匹配;超过10个的返回,匹配度不高,还是需要进一步输入。
2、默认返回的第一个用户是高亮的,默认替换输入框的人名和对应隐藏的用户id,用户无需再次选择;可按↑↓←→选择,选择时即选中,会替换输入框的人名和对应隐藏域的用户id。
研究了业内选中的通用方法是“Tab键”选中,(Enter会和输入回车冲突)。