在Javascript中显示大量信息的有效方式

时间:2009-09-25 14:31:19

标签: javascript jquery ajax performance

我不断从远程服务器中提取一个列表(超过200个)条目并在表格中显示它们(每行有许多数据)。数据随时间变化和波动。什么是JS中最有效的方式将其渲染到屏幕上。随着数据的变化,我只需擦除我的DOM并使用新数据重新渲染;我是否有一个id列表,只会更新正确的tr dom条目?

它已经排序并过滤为正确的信息(服务器端),所以它只是向我关注的用户显示它。

任何建议都会有所帮助。我正在为我的请求使用jQuery,但可以更改。我需要知道拉动这个大型数据集并以表格格式显示它的最快(延迟明智)方式。

编辑:在这种情况下无法进行分页。

Edit2:后端是在负载均衡器中运行的Python(WSGI),能够刷新600 reqs /秒。数据仅作为JSON提供,后端更多是API。

3 个答案:

答案 0 :(得分:1)

我非常喜欢向下滚动时提供更多数据的“Live Image Search”。

答案 1 :(得分:1)

如果您的数据列表变得非常大,请考虑不要一次向用户显示所有这些数据(如果在您的情况下可能)。用户不仅会看到那么多数据而迷失方向,而且浏览器必须渲染整个列表并让您放慢速度。

您没有提到您正在使用的服务器端技术。如果你在.Net中,有几个ASP.Net控件使用数据寻呼机(如网格视图)。您还可以使用一个PagedDataSource对象(可以与任何具有DataSource属性的ASP.Net控件一起使用)。两者都会将您的数据分解为页面,并且只会一次呈现所查看的页面。这大大减少了延迟。

答案 2 :(得分:1)

您使用的是HTML表吗?前段时间我从IE团队那里划过微博,说明渲染表很慢。非常慢。每次重新渲染整个表可能比更新它的值慢,但这只是我的猜测。

事实上,我的观点是,更新值将比重新呈现页面中的元素更快。为了优化延迟,您可以保留映射的对象哈希值,这样您就不必在每次更新值时都查找DOM。