您是否重复使用选择框中的值?

时间:2013-05-26 14:03:50

标签: javascript html css

假设我在html页面中有一个选择框。并且该选择框中的值来自db查询,该查询返回一个不那么小的选项列表 现在,如果我需要添加另外4个显示相同选项列表的选择框,我是否必须复制代码,然后发送回浏览器4*(select_box_result_size),或者这通常以不同方式完成?

2 个答案:

答案 0 :(得分:3)

无论您如何管理服务器端代码,答案都是每个选择框都需要自己的选项组。也就是说,如果所有选项都相同,那么您应该只对数据库进行一次查询,并使用单个函数生成所需的所有选择框。只需从数据库中获取选项,将它们存储在变量中,然后创建框。

请注意,在HTML中,每个框都会将值硬编码到其中,因此您的客户端代码将具有重复数据,但这并不重要。重要的是,您必须维护的代码是干净的,并且您在数据库上施加的压力尽可能小。您只需要一个查询+一个功能。


如果性能确实是个问题,那么您始终可以使用JavaScript动态生成组合框。你基本上可以嵌入一个,然后再复制四次。但是,您需要考虑两件事:

  1. 确实是否存在由这些组合框引起的性能问题? (可能不是)
  2. 组合框是否太大,以至于通过网络连接加载HTML实际上需要的时间比用JavaScript复制框四次要多? (同样,可能不是......请记住,盒子越长,复制所需的时间越长。)
  3. 除非你有1000多种选择,否则我建议你坚持四次生成盒子。如果你有那么多,那么做两件事:

    1. 基准。创建两个页面,一个包含一个组合框,另一个包含四个页面并比较大小。然后比较加载时间。
    2. 考虑改进您的用户界面。也许如果您有1000个选项,最终用户最好实施某种过滤流程以减少必要元素的数量...即如果您有一个包含世界上所有城市的框,请选择一个框通过JSON请求,然后使用适用的城市填充城市框。

答案 1 :(得分:0)

  

该选择框中的值来自返回a的db查询   不是那么小的选项列表。

为方便用户使用,您可以尝试使用自动提示,但是您可以尝试编写自己的库。

如果同一数据多次显示(4次),具体取决于您的服务器端脚本,最好在内存中获取数据并生成选择而不是查询4次。

  

我是否必须复制代码

最好不要复制,至少可以编写辅助函数来生成选择列表。如果你真的想从html标记中删除代码,你可以考虑使用其中一个使用模板的MVC框架,并允许你将数据绑定到它。