javascript - HTML 表单下拉数据源

标签 javascript jquery html

<分区>

  • 我知道这是一个讨论过很多次的话题,但是我找不到我要找的东西..

问题:如今作为动态下拉框的数据源的最佳实践是什么,例如用户在下拉列表 #1 中选择了一个汽车品牌,然后在下拉列表 #2 中提供了所有可用车型的概览?

我个人看到了三种情况,谷歌搜索并不能帮助我找到最佳实践:

  1. 在下拉列表 #1 发生变化时查询数据库,让 JS 使用可用模型刷新 #2。
  2. 查询平面文件(JSON、XML 等),让 JS 使用可用模型刷新 #2。
  3. 一次加载所有数据,让 JS 管理选择。

这个案例或多或少是关于静态数据的,所以每晚都可以毫无问题地生成一个平面文件。

从性能的 Angular 来看,我认为 3 是最不受欢迎的,但是在 1 到 2 之间我不确定今天的数据库优化和可用带宽。

我主要关心的是最终用户体验..

谢谢!

最佳答案

我会说这取决于每个案例。

您应该随时为数据的增长做好准备;但您应该知道如何它应该增长。此外,如果您的客户端和服务器端逻辑实现良好,查询几百个寄存器也不会花费很长时间。

停下来快速算一下:在数据库中查询一些名字。该数据库有 5k 条索引良好的记录。在这 5k 人中,只有 300 人符合您的标准。因此,让我们返回这 300 个平均长度为 50 个字符的名称。您有大约 15kb 的信息正在传输。在如今的普通网络连接中,接收不到半秒。

但是,对于用户体验而言,必须浏览下拉列表以查找三百个名称确实不太好。因此,将下拉列表替换为自动完成文本框可能是个好主意。想进一步改善用户体验吗?实现偏好逻辑以了解用户最有可能选择什么名字(可能基于他之前的输入和/或其他用户最近几天的输入——最流行的名字,你知道的)。

如果您主要关心的是用户体验,那么您必须像拥有体验的用户一样思考。试着这样想:

  • 什么会更好?包含数百个条目的下拉列表或具有自动完成功能的文本框?
  • 也许自动完成会让用户有点不知所措,那么在文本框旁边列出一些示例怎么样?
  • 更好的是,如果这些示例实际上是我可能会选择的示例呢?

回到问题上来,重复进行查询可能会很昂贵,所以一点缓存会很好。使用 Html5 的 SessionStorage 和 LocalStorage,这真的很容易做到。此外,跟踪 IndexedDB 中的某些表也是一个好主意,不是吗?

用户体验的最佳实践是思考什么能让用户满意。尽量充分利用它。

关于javascript - HTML 表单下拉数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616499/

相关文章:

javascript - 如果元素在容器外部,是否可以相对于容器定位具有绝对定位的元素?

javascript - 获取图像顶部 strip 的 rgba 值

javascript - 可以在 textarea 中输入的 cols 数量限制

javascript - 如何在js矩阵中通过键盘输入数字

javascript - react /Redux : separating presentational and container components dilemma.

javascript - Rails 和 knockout.js 绑定(bind)嵌套元素而不在 fields_for 中使用 foreach

javascript - Internet Explorer 跳动滚动

javascript - 有没有办法在 react-native 中缩放 View ?

javascript - 如何创建带验证的谷歌验证码

javascript - 在浏览器窗口关闭或卸载前提交表单