代码之家  ›  专栏  ›  技术社区  ›  jrharshath

分页和排序问题

  •  15
  • jrharshath  · 技术社区  · 17 年前

    我正在研究面向数据库的web应用程序中应该依赖客户端对表进行排序而不是服务器端排序的情况。困扰我的一个特殊情况是分页。

    • 我不能一次就把整张桌子还给客户
    • 我无法使用javascript对多达10000条记录进行排序


    补充:

    好吧,在数据库上排序并返回reqd页面、上一页和下一页似乎是最好的选择。

    4 回复  |  直到 17 年前
        1
  •  5
  •   Jeff Meatball Yang    17 年前

    客户端最好保持简单:Javascript排序/分页仅适用于非常小的结果集——小到用户不会注意到性能下降。

    加载可能表现为频繁请求更多页面、每页有大量行/列以及频繁请求重新访问。(我们甚至还没有讨论过过滤)

    因此,根据您的用户和 实际用法 ,您可能需要某种形式的缓存。请注意,这些是在您了解用户正在做什么之后的一段时间内的建议:

    • 对于频繁的页面请求,考虑让一些Ajax请求预加载接下来的几页(以及之前的几页),然后根据用户请求(通过Javascript)将行交换到表中。

    • 对于频繁调用,一个好的方法是在SQL中保留一个仅包含结果的缓存表。


    补充答复:

    我非常主观的反应是:用户(我)想从任意页面排序。让他们(我)。没有什么比待在你想去的地方更烦人的了,而一个应用程序会把你带回列表的开头。

    另一个考虑因素是多级排序:您想按序列号排序,然后按用户名排序吗?考虑一下Microsoft Excel的功能,或者您的用户熟悉的任何其他应用程序。你的用户可能会对他们习惯的内容感到满意,包括被退回到第1页。

        2
  •  3
  •   Blixt    17 年前

        3
  •  1
  •   Darin Dimitrov    17 年前

    如果由于某些原因,您无法在数据库级别进行排序和分页,那么您应该使用服务器端脚本来完成。在这种情况下也没有javascript。

    最糟糕的方法是使用javascript进行排序和分页,当然,出于显而易见的原因,我们根本不建议这样做。

        4
  •  0
  •   Jas Panesar    17 年前

    让数据库对发送到屏幕上特定页面的内容进行排序。 它几乎总是会更快,被缓存并减轻浏览器的负载。

    您可能希望存储所选的子排序功能,以便在页面之间记住它们。

    推荐文章