【问题标题】:Grid - When should you switch from html to server side table processing?Grid - 什么时候应该从 html 切换到服务器端表处理?
【发布时间】:2012-03-20 19:44:01
【问题描述】:

,这个问题可能是主观的,但是已经出现了很多“网格”Javascript插件来帮助对表格进行分页和排序。它们通常以两种方式工作,第一种也是最简单的方法是,它采用现有的 HTML <table> 并将其转换为可排序和可搜索的信息。第二个是将信息传递给服务器并让服务器从数据库中选择要显示的信息。

我的问题是:在什么时候(大小明智)使用服务器端处理与显示所有数据并让“网格插件”将其转换为可排序/可搜索的表客户端更有效 -一边?

datatables 为例,我必须执行至少 3 次查询才能获得表中的总行数、分页的总过滤结果以及要为特定选定页面显示的过滤结果。然后每次我排序时,我都会再次查询。每次我移动到另一个页面,或者在表格中搜索时,都会有更多的查询。

如果我要在客户端访问页面时提取一次数据,我将执行单个查询,然后将结果格式化并将结果一次性推送到客户端。这会增加页面大小,并且一旦页面变得太大,可能会延迟页面的加载。好处是只有一个查询,所有的排序、搜索和分页都由插件处理,因此无需等待响应,也不会再进行查询。

如果我只有几行,我想在页面加载时将格式化的表格数据推送到客户端会是最快的。但是对于数千行,切换到服务器端将是最有效的方式。

转折点在哪里?是否有一个临界点,或者服务器端或客户端是 100% 的方法?

【问题讨论】:

    标签: ajax jqgrid datatables flexigrid


    【解决方案1】:

    您的问题的答案只能是主观的。所以我解释一下我个人是如何理解这个问题并给我建议的。

    在我看来,2-3 行 3-4 列的数据可以在不使用任何插件的情况下显示在 HTML 表格中。您向用户显示的数据更重要的是用户将能够掌握将要显示的信息。因此,我认为信息必须具有良好的格式,并用颜色和图标进行标记。这有助于从大约 10 行数据中获取信息,但仅此而已。如果您只显示 100 行或更多行的表格,那么您overtax 用户。用户必须分析数据以从表格中获取任何有用的信息。滚动数据使这变得不那么容易。

    所以我认为应该为用户提供舒适或至少方便的界面对表格中的数据进行排序和过滤。确切的界面主要是品味问题。例如,网格可以有一个额外的过滤栏

    对于过滤甚至对数据进行排序,重要的是不要使用纯字符串,而是要能够区分数据类型,例如integer(10 应该在 9 之后,而不是在 1 和 2 之间),numbers (正确解释数字中的 '.' 和 ',')、dates3/20/2012 应该更接近于4/15/2010)等等。如果您只是将 HTML 表格 转换 到某个网格,您将无法正确过滤或排序。即使您使用纯 local JavaScript 数据在网格中显示,拥有具有某种类型信息的数据源然后基于数据创建网格也很重要。在这种情况下,您可以将日期指定为 JavaScript Date 或 ISO 8601 字符串“2012-03-20”,并且在网格显示中,数据对应于指定的格式化程序为 3/20/201220-Mar-2012

    您是在服务器端还是在客户端实现过滤、排序和分页对打开页面的用户来说并不重要。重要的是所有工作都足够快。网格插件、过滤器(使用过滤器工具栏或外部控件)和网格样式的确切选择取决于您的品味和项目要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多