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

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

  •  7
  • Aheho  · 技术社区  · 15 年前

    我正在使用一个名为jQuery的插件 Tablesorter

    我非常喜欢客户端排序和分页给聚会带来的响应能力。我还喜欢你不必反复访问web服务器或数据库的方式。

    不过,我可以看到,随着时间的推移,我显示的日志可能会变得相当大。我确信客户端分页和排序会变得不切实际。这项技术在自身重量的作用下,什么时候开始崩溃?500张唱片?2000张唱片?一万张唱片?

    编辑:

    3 回复  |  直到 15 年前
        1
  •  3
  •   kemiller2002    15 年前

    然而,我可以看到,随着时间的推移 我展示的原木可以长得很长 其中客户端分页和排序 在它自己的重量下?500张唱片? 2000张唱片?一万张唱片?

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

    最好的办法是看看你的特殊情况,就是试试看。浏览器虽然不是专门用来处理大量数据的,但仍然可以处理。用户体验将非常糟糕,但它可以处理的记录数量相当高。

        2
  •  4
  •   mauris    15 年前

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

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

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

    假设表的每一行是200字节,我将向客户机发送10000行(这允许客户机排序和分页),我将发送200*10000=2000000字节,也就是2MB。这将花费浏览器相当长的时间从服务器加载它,然后一些时间排序插件排序一切,然后分页一段时间页面。

    事实上,服务器负载将随着向客户机发送所有行的需要而增加。

    通常情况下,Javascript要处理的数据和迭代太多,浏览器(Firefox或类似的浏览器)会被锁定,看起来就像崩溃了一样。

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

        3
  •  3
  •   Stefan Kendall    15 年前

    根据列数的不同,几百个就可以了。当处理10^3(千)个数量级的数据时,这肯定会崩溃。

    这些都是我在不同浏览器上的经验发现,但我通常使用的是坚固的硬件。我会把你的数据限制在几百个。