我想创建一个包含统计数据的应用程序,即美式足球运动员。
我有我的数据库,我可以查询诸如“传球码”,“冲码”等等,我将它们从最高到最低排序。然后在客户端我正在考虑让用户重新排序结果(使用javascript)。
到目前为止还很简单,但是当我选择传球码时我得到100个结果,然后查询只返回第一页上的前20个并给出更多或下一个选项。现在,如果我让客户端的用户自行重新排序,那么他将排序前20,并且可能会感到困惑,认为排名前20/100的排名也是最低的20/100。我也可以使用javascript发送100个结果并仅显示20个,但如果列表增加,这可能需要一段时间才能加载。
另外如果我考虑到如果我让他们按最高/最低排序可能我想让他们按码传,按队等进行排序,甚至选择一个团队,位置等等。
我正在考虑使用php并将每个排序作为查询,但还有其他方法我不知道吗?
注意:我是一个真正的初学者。
答案 0 :(得分:3)
如果您不允许在同一页面上查看所有结果,则每次用户启动排序时都应获取新数据(无论是使用页面重新加载还是使用XHR)。如果您显示100行中的20行并允许客户端排序,则结果很可能不正确。
现在,如果加载了所有结果,则可以使用比较器进行排序。如果每个键值(任何类型)对也具有相应的键值(String - 我们称之为“比较器值”),这将起作用,这样您就可以比较具有不同类型数据的行。 / p>
我们有一个网格小部件,可以获取任意数据并且在加载所有结果后,可以允许用户按任何给定列重新排序,为此我们使用带比较器功能的Backbone集合。如果您熟悉Backbone,我可以显示此小部件的源代码。如果你愿意,可以发表评论。
答案 1 :(得分:2)
有很多方法可以在动态Web项目上检索和显示数据,但这超出了您的信息范围。如果我在你的鞋子里我会使用java(Java EE)使用struts和hibernate,并且可能只是为了让它更容易,但我猜你不知道那些并且仅限于javascript和php。
我会说,为用户可能输入的每种类型的结果进行查询会很乏味,但鉴于您是初学者,这可能是您最好的选择。这不是一个“最佳实践”,但如果这只是一个你自己正在进行的小项目,我认为它会起作用。