【问题标题】:Paging : ClientSide or Serverside分页:客户端或服务器端
【发布时间】:2010-09-14 21:59:55
【问题描述】:

在使用 php 制作的管理面板中,分页的最佳方式是什么?客户端(jquery)还是服务器端?

【问题讨论】:

    标签: php jquery pagination


    【解决方案1】:

    简短的回答,是的。

    答案有点长,这取决于你在寻呼什么

    如果您要对大量数据进行分页,我会采用组合方式,使用 ajax 获取数据并让 PHP 整理应该发送哪些数据。

    如果你只是用控件来分页几个面板,我会用 javascript 来做,但这是我个人的偏好。

    对于 9/10 解决方案,请选择您更喜欢的任何解决方案。

    【讨论】:

    • ......当它出现在我的脑海中时非常幽默:(
    【解决方案2】:

    再想想你的问题:什么时候(以及如何)会发生什么?

    客户端:

    要实现客户端分页,您应该将所有行(数据)提供给您的客户端,因为此时您还没有任何关于需要哪个页面的信息。然后在(可能)javascript 解决方案的帮助下,将所有提供的数据分成更小的块,模仿分页。

    服务器端:

    您应该只提供第一个(或实际的)页面。

    我当然会选择服务器端分页。

    【讨论】:

      【解决方案3】:

      您的决定将取决于数据可能会被如何使用。

      当用户在该页面上时,他们是否可能大部分时间都停留在结果的第一页?在这种情况下,服务器端分页工作得很好,因为您只需经历组装那一页数据的麻烦。

      或者他们可能会不断地在结果中来回翻页?在这种情况下,您最好一次有效地构建所有结果并让客户端进行分页,因为无论如何您最终都将需要所有数据。

      【讨论】:

        【解决方案4】:

        这取决于几个因素:(不完整列表)

        • 人们希望查看第一页以外的其他页面的频率如何?
          • 如果他们经常四处浏览,您会希望交互完全在客户端上进行 => 即时反馈。
          • 如果 OTOH,其余页面很少使用,则首先没有理由将其发送给客户。
          • 即,发送大多数用户想要的,仅此而已。
        • 总数据集有多大?
        • 您如何权衡初始加载时间(客户端较高)与提供新页面的时间(服务器端较高)?
        • ...

        我会选择服务器端,但是:

        • 仅提供首页,从而最大限度地缩短初始加载时间
        • 在请求时通过 AJAX 获取其他页面 - 仅提供必要的内容以最大限度地减少“页面”加载时间

        而且这是一个管理面板,所以你真的应该关注@Kristoffer S Hansen 的advice:做任何你觉得更舒服的事情。

        【讨论】:

          猜你喜欢
          • 2017-05-10
          • 2010-09-29
          • 2011-06-20
          • 1970-01-01
          • 2023-03-22
          • 2011-06-16
          • 2011-03-05
          • 1970-01-01
          相关资源
          最近更新 更多