我找到的情况下在数据库为导向的网络应用程序时的一个应该依赖于客户的侧的排序表过排序服务器上面。一个特定的情况,是缠着我是分页。

当试图分大表(说10000行),以及它通过一个特定的柱,这将是最好的办法?

我的理解是,一些与此相关的问题是:

  • 我不能返回的整个表格的客户在一个侧去
  • 我不能排序,作为多10000记录javascript
  • 排序表将涉及排序的行在所有网页,而不仅仅是目前的页。

所以你有任何更多的问题添加到这个清单?

什么样的做法将导致一个很好的组合客户的侧和服务器方的互动使得服务器的负载减至最小?


此外:

好的,排序的数据库和返回的reqd页,上一页及下页似乎是最好的赌注。

现在考虑这一点:

用户在网页(3的10)的表按序列号。现在的用户点击标题命名为"username",想要对表格进行排序通过用户名。

Quesion:应该最终的结果是"页面(1的10)按用户名"或它应该是"页面(3的10)按用户名"?

我知道这是一个非常主观的问题,但你有什么建议,为什么?

有帮助吗?

解决方案

客户的侧最好是保持简单:Javascript排序/寻呼仅仅是对非常小的结果集足够小的用户不会注意到绩效的打击。

服务器方在这里你可以优化服务器的负载:

负载能形式的频繁要求提供更多网页,大量行/列每页,以及频繁的请求诉诸.(我们还没谈论过滤)

所以取决于你的用户和 实际使用情况, 你可能需要某种形式的缓存。注意,这些建议后一段时间你知道你的用户正在做的:

  • 为频繁页的请求,考虑具有一些阿贾克斯的请求预紧接下来的几(及之前)网页,然后交换在行(通过Javascript)来表根据用户的请求。

  • 对于大的页面尺寸,考虑保持行中的"最近使用"的应用(存储器)的高速缓存,因此该数据库是不需要吐出同样巨大块大块的数据。

  • 频繁诉诸,一个好办法是保持缓表在SQL只有结果。

和总是,总是,总是索引的数据库。


额外的答复:

我非常主观的反应是这样的:用户(我的)想要排序,从任意页。让他们(我)。没有更讨厌的不是你想要的,并具有应用程序把你扔回到开始的清单。

另一个考虑因素是多层次的分类:你想要实现的排序序号,则用户名?考虑什么Microsoft Excel,或者任何其他应用程序的用户都熟悉的。你的用户将可能被罚款与他们的习惯,包括被扔回到第1页。

其他提示

数据库是真正的野兽在的排序和选择的数据。所以你最好的赌注是肯定有的客户说到服务器,"我想页X Y行按Z"然后数据库,它的事情,客户表示的结果。改善性能的你可以做你的客户缓的结果,而且你可以做你的代码要求下次和以前的网页之后,当前一个已经获取使他们可以立即显示出的请求。

最好的办法将来做分拣和寻呼数据库级和返回的一个子集的原始数据,只能显示在屏幕上。没有javascript在这种情况。

如果由于某种原因你不能排序和页面数据库的水平,然后你应该做一个服务器侧脚本。没有javascript在这种情况。

而最糟糕的做法将来做分拣和寻呼javascript这当然不建议在所有出于明显的原因。

有数据库种什么被传送到该特定网页上屏幕上。 它几乎总是会以较快,以缓和减轻这种负载上的浏览器。

如果你喜欢,有客户的侧的允许进一步分选通过javascript,等等如果数据不够详细,能从中受益。 你可能需要存储什么样子你提供选择,使他们有记忆之间的网页。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top