3

我有一个返回数据的 Web 服务,数据集相当大,可能是 600 行,20 列。将这些数据加载到 Jquery 代码中的 html 表中的最快最有效的方法是什么?

我尝试通过遍历返回的数据并在字符串中创建表 DOM 来创建表 html,但循环部分非常慢。我听说过 Jquery 模板,但我不确定这项技术对于大型数据集是否足够快......

谢谢

4

4 回答 4

2

您是否可以更改 Web 服务或让另一个服务调用它并解析数据服务器端并返回 HTML?在客户端处理 JSON 将成为您的瓶颈。如果您可以让服务返回所需的 HTML 给您,那么它element.html(data)在客户端很简单。

编辑:返回 JSON 或 HTML 的问题以及每种方法的优缺点已经在这里讨论了很多: 1 , 2 , 3 , 4 , 5

于 2011-01-04T03:06:55.320 回答
1

如果您的目标是让用户能够尽可能快地与数据进行交互,那么您可能想要考虑类似无限滚动(也称为连续滚动)模式的东西,以便您根据需要从用户的滚动中构建网格而不是把所有时间都花在预先渲染网格上。

一些链接:

http://www.infinite-scroll.com/

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-an-infinite-scroll-web-gallery/

于 2011-01-04T03:36:18.870 回答
1

这似乎是一个设计问题。一次加载 600 x 20 个数据项不是一个好主意。考虑具有低系统资源的客户端,例如袖珍 PC 或 TC(瘦客户端),将无法访问这样的页面。

您需要缓存 Web 服务数据并根据用户操作将其分块加载到客户端浏览器中。您可以使用一些 Ajax 控件来执行此操作。

于 2011-01-04T03:11:57.963 回答
0

我认为这是JSON DB可能最有用的地方......你可以编写一个服务器端页面,用 json db 格式的数据响应几行......然后做你自己的 ajax 代码来加载行并在你的选择像您自己的显示模型<table>"overflow:auto;"以块的形式向该表添加行..或使用已经建议的“无限滚动”之类的东西。

于 2011-01-06T04:23:31.307 回答