javascript表排序/分页(客户端)。有多大太大了?

时间:2010-06-18 01:23:30

标签: javascript jquery tablesorter

我正在使用名为Tablesorter的jQuery插件 在我的一个应用程序中对日志表进行客户端排序。我也在使用tablepager加载项。

我非常喜欢客户端排序和分页为聚会带来的响应能力。我也喜欢你不必反复点击Web服务器或数据库。

但是我可以看到,我正在显示的日志会变得非常大。我确信客户端分页和排序是不切实际的。这种技术在自身重量下会开始崩溃的重点是什么? 500条记录? 2000年的记录? 10,000条记录?

编辑: 简而言之,您将使用什么标准来确定是否要使用客户端排序/分页而不是服务器端分页?预期结果的大小是否会影响您的决定?引爆点在哪里?

3 个答案:

答案 0 :(得分:3)

当浏览器或客户端主机无法接收时,此技术可能会崩溃。

使用服务器端分页来防止这种情况。

我首先考虑我发送给客户端的数据量,这反过来会导致加载时间因素。

假设表的每一行是200字节,并且我向客户端发送10000行(允许客户端排序和分页),我发送200 * 10000 = 2,000,000字节,即2 MB。这将需要浏览器相当一段时间从服务器加载它,然后一段时间让排序插件对所有内容进行排序,然后分页一段时间来分页。

实际上,您需要将所有行发送到客户端,因此服务器负载会增加。

通常有大量数据和迭代供Javascript处理,浏览器(Firefox或类似版本)将锁定并看起来好像崩溃了。

如果您使用服务器端排序+分页,客户端会看到准确和最新的信息。还说你有相同的10000行,每个200字节。每页有20行。您只发送20 * 200 = 4000字节,这是4 KB,相对较小,可以由浏览器/服务器处理。

答案 1 :(得分:3)

几百个可能没问题,具体取决于列数。当您处理大约10 ^ 3(数千)的数据时,这肯定会崩溃。

这些是我在不同浏览器中的实证研究结果,但我通常使用强大的硬件。我会将您的数据集限制为数百个。

答案 2 :(得分:3)

  

然而,我可以及时看到   我显示的日志可能会变得非常好   大。我确信有一点   客户端分页和排序的地方   将是不切实际的。什么点   这种技术会开始崩溃吗?   根据自己的重量? 500条记录?   2000年的记录? 10,000条记录?

这实际上取决于很多不同的东西,例如表格大小的列数,以及该人使用的浏览器和版本。在看到真正的问题之前,我通常可以排序多达1000条记录。如果你开始接近这个数字,我肯定会开始考虑服务器端排序。使用AJAX,服务器端排序可以非常高效并且具有良好的用户体验。

最好的方法是看你的特殊情况就是试试看看。浏览器虽然没有真正设计来处理真正的大量数据,但仍然可以处理它。用户体验非常糟糕,但它可以处理的记录数量非常多。