User interface 我应该如何处理过度膨胀的选择框/下拉列表
当项目中的数据量增长时,所有web开发人员都会遇到这个问题,我还没有看到一个明确的、直观的最佳实践来解决这个问题。启动项目时,通常会创建带有标记的表单,以帮助为一对多关系拾取相关对象 例如,我可能有一个邻居系统,每个邻居都属于一个邻居。在应用程序的第1版中,我创建了一个编辑用户表单,该表单有一个用于选择用户的下拉列表,它只列出了我的地理位置有限的应用程序中的5个可能的社区 一开始,这很有效。只要我有100条或更少的记录,我的选择框就会快速加载,而且使用起来相当简单。然而,假设我的申请启动并进入全国范围。我拥有的不是5个街区,而是10000个。突然间,我的小下拉列表需要永远加载,一旦加载,就很难在大量按字母顺序排序的列表中找到你的邻居 现在,在这种特殊情况下,拥有分层数据,并允许用户使用几个动态生成的下拉列表进行深入研究可能会很好。但是,当所选对象/记录本质上不是分层的时,最佳解决方案是什么?在过去,of是通过一个带有搜索框和列表的弹出窗口来完成的,但这看起来很笨重而且过时。在今天的Web2.0世界中,在多个for one表单中找到一个对象的好方法是什么 我曾考虑过使用Ajaxifed搜索框,但它似乎最适合自由文本,当要保存的数据只是对另一个对象或记录的引用时,它会出现一些问题User interface 我应该如何处理过度膨胀的选择框/下拉列表,user-interface,User Interface,当项目中的数据量增长时,所有web开发人员都会遇到这个问题,我还没有看到一个明确的、直观的最佳实践来解决这个问题。启动项目时,通常会创建带有标记的表单,以帮助为一对多关系拾取相关对象 例如,我可能有一个邻居系统,每个邻居都属于一个邻居。在应用程序的第1版中,我创建了一个编辑用户表单,该表单有一个用于选择用户的下拉列表,它只列出了我的地理位置有限的应用程序中的5个可能的社区 一开始,这很有效。只要我有100条或更少的记录,我的选择框就会快速加载,而且使用起来相当简单。然而,假设我的申请启动并进入全
请随意引用具有此问题通用解决方案的特定库,或者简单地以更一般的方式分享您在项目中所做的工作我认为在这种情况下,自动完成文本框是一种很好的方法。在这里,他们还使用一个自动完成框来标记条目已经存在的位置,即不是自由文本而是选择。(请记住,创建新标签需要声誉!)
我个人更喜欢这种方式,因为我打字比用鼠标选择东西快,但我想这是程序员的病:)自动完成通常是我经验中搜索的最佳解决方案,但只有在用户能够轻松提供文本标记的情况下,作为包含对象的对象名称或分类法的一部分(例如产品类别或邮政编码) 然而,这并不总是有效的,特别是在“浏览”行为更合适的地方——举个真实的例子,我曾经为一个社区网站写过一个页面,允许用户向朋友发送消息。我们在那里使用自动完成,允许多个条目用逗号分隔 当你知道你想要发送信息的人的名字时,它非常有效,但是我们发现在用户接受过程中,大多数人并不知道谁在他们的好友列表中,并且不能很好地使用该页面-因此我们添加了一个带有好友图标的列表弹出窗口,这更成功
(这是很久以前的事了-现在每个人都在复制Facebook…组织大量数据的不同方法:
- 等级制度
- 空间(地理/几何)
- 标记或面
搜索大量数据的不同方法:
- 过滤(包括自动完成)
- 排序/分页(按字母排序的数据也可以按第一个字母分页)
- 向下钻取(假设数据按上述方式组织)
- 自由文本搜索
如果我能给你们指出一些“最佳实践”,我会的,但HID很少如此明确。使用上述选项作为起点,看看它会把你带到哪里。你能解释一下,当你建立对另一个对象的引用时,ajaxified搜索框会崩溃的原因吗?@MaxGuernseyll-我想“崩溃”有点强。这似乎让事情变得有点笨重。如果是像SO标记这样的情况,数据(可能)保存为文本,但如果我真正想要的数据是id字段,我必须对表单进行额外的查询,以将他们输入的文本与记录id关联起来,并验证他们输入的有效字符串。