【发布时间】:2010-02-08 12:19:52
【问题描述】:
我之前写过纯 JavaScript 前端,并且开始注意到在处理大量数据时性能会下降。我尝试过使用 xml 和 json,但在这两种情况下,浏览器都需要处理很多。
这提出了我的问题,即多少才算太多?
【问题讨论】:
-
这不取决于您使用的浏览器和操作系统吗?
标签: javascript xml json
我之前写过纯 JavaScript 前端,并且开始注意到在处理大量数据时性能会下降。我尝试过使用 xml 和 json,但在这两种情况下,浏览器都需要处理很多。
这提出了我的问题,即多少才算太多?
【问题讨论】:
标签: javascript xml json
你不知道,不完全知道,也不总是知道。你可以好好猜测一下。
这取决于浏览器、操作系统、RAM、CPU、当时还在运行什么、它们的连接速度有多快、它们正在传输什么等等。
找出您对普通用户的期望的几种情况,并对其进行测试。添加各种最佳、最差和有趣的(例如移动设备、平板电脑)案例。
当然,您可以应用经验并从您的具体案例中进行推断,未来的答案将会改变。
但不要陷入“它对我有用!”的陷阱!
我通常会在屏幕分辨率上看到这一点:随着分辨率的提高,同时显示多个窗口更为流行。在 1995 年,我很少没有有最大化的东西。十五年后的现在,恰恰相反。
然而,有时人们会设计一些软件或网站,使用较低的对比度[1],将其最大化,然后连接到本地主机上的服务器——这是他们所做的唯一评估。
[1] 因为他们知道文字内容并且不需要自己阅读,所以较低的对比度看起来更美观。
【讨论】:
在我看来,如果你需要停下来思考这个问题,那么数据太多了。一般来说,您应该设计您的应用程序,以便使用低端上网本和/或互联网连接速度较慢的用户仍然能够运行它们。另外请记住,您的应用程序通常不是您的用户同时访问的唯一页面。
我的建议是使用带有 Firebug 的 Firefox 进行一些测量。查看在适度配置中完成请求需要多长时间。如果浏览器渲染数据需要很长时间,那么您最好重新设计。
【讨论】:
一个好的指导原则应该是,与其担心浏览器是否可以处理您发送的数据量,不如担心您的用户是否可以处理它。当然,这完全取决于演示文稿(即,大量数据绑定到将在画布中呈现复杂图形的可视化工具与绑定到巨大表格的大量原始数字不同),但根据我的经验用户的大脑在浏览器/网络/客户端计算机之前达到数据过载。
【讨论】:
这实际上取决于您的外部数据将在您的 Javascript 中采用的形式。如果您想一次加载所有数据并将其作为具有大量属性(关联数组)的大对象保存在内存中,那么您会发现大多数当前桌面只能处理大约 100k 个条目(带有小键值对)在性能真正下降之前。
如果可能的话,您应该看看是否有办法只加载用户在给定请求/交互中所需的数据。您可以使用 AJAX 请求所需的数据并预取您认为用户可能需要的数据。
【讨论】: