代表动态过滤的表

时间:2011-05-04 16:57:45

标签: jquery user-interface jqgrid

我需要表示一个包含有关某些测试及其结果的数据的表。

每次测试有超过100K的测试和几个结果 它需要显示为设备进行的测试结果 一个想法是从服务器检索数据 用jqGrid表示它。

--------------------------
device                   |
--------------------------
     | version1 |version2|
testA| failed   | Passed |
testB|...       | ...    |
.                        |
.                        |
.                        |
-------------------------|

以下哪种方法是动态检索和表示数据的最佳方法?为什么? :

  1. 从服务器检索所有数据并使用jquery和javascript对其进行过滤。

  2. 从服务器检索过滤后的数据,并代表它。

3 个答案:

答案 0 :(得分:0)

始终获取过滤后的数据:

  1. 数据库处理的行数减少(如果索引正确)意味着数据库将更好地扩展。
  2. 通过网络发送的数据越少意味着它将更好地扩展
  3. 在客户端解析较少的数据将提高感知性能
  4. 客户端上较少的数据将减少内存占用
  5. 如果您的网格正在进行分页,那么您也只想一次检索一大堆记录。

    祝你好运。

答案 1 :(得分:0)

我认为100K记录要转移很多,也可能对浏览器来说太多了 想想浏览器必须以HTML格式获取的KB 我没有关于您需要添加到此页面中的过滤器类型的信息,但基于此100.000记录总大小我非常确定您应该在服务器端过滤和分页。用户几乎不可能同时检查那么多记录。

无论如何,我建议你检查服务器和客户端的网络使用成本和可用处理能力来决定它。
然而,互联网上有很多关于这个标准的文章。

答案 2 :(得分:0)

回答这个并不像你想要的那样黑/白。 100k +记录是一个大型数据集,    无论使用哪种工具    展示它(......以及人类有用地理解它的能力)。用户可以处理分页(在客户端或服务器上),还是需要一次显示所有数据?如何以及何时需要过滤数据以使此工具对用户有用?一些注意事项:

  • Javascript很健壮,但是显示大型设置的冗长DOM更新只会对某些旧浏览器(特别是IE6)征税并导致它们锁定。你应该知道你的用户群 - 如果他们主要是在新的浏览器上,那么这不会是一个问题。
  • jqGrid有一个12k records (Advanced>>Big Sets)的演示版。注意他们没有加载整个东西。
  • Minimize DOM updates。在内存中过滤数据,然后再写一次。
  • 包含“加载”动画,DOM阻止,按钮禁用等的UI将有助于阻止来自不耐烦的用户的重复服务器/过滤器请求,这些用户在尝试使用时可能会关闭此Web应用程序(或他们自己的浏览器)数据集。
  • 最大限度地减少用于设置数据样式的javascript数量(备用行类,翻转时的行突出显示,这类事情)。依赖CSS或在jQuery插件中禁用其中一些功能。这有助于显示速度。