2010-02-08 60 views
2

我之前编写过纯JavaScript前端,并在处理大量数据时开始注意到性能降低。我尝试过使用xml和json,但在这两种情况下,浏览器都处理很多事情。多少外部数据太多? (XML或JSON)

这构成了我的问题,这是多少太多?

+1

这不是依赖于您使用的浏览器和操作系统吗? – rahul 2010-02-08 12:22:07

回答

3

你不能知道,不完全,并不总是。你可以做出一个很好的猜测。

这取决于浏览器,操作系统,内存,CPU,还有什么是运行在那一刻,他们的连接速度有多快,他们要转移还有什么,等

弄清楚你期待的几种情况你的普通用户,并测试这些。添加各种最佳,最差和有趣的(例如手机,平板电脑)案例。

当然,您可以根据您的具体情况应用经验和外推,答案将在未来发生变化。


但是不要陷入“它适用于我!”的陷阱。

我通常会看到屏幕分辨率:随着屏幕分辨率的增加,更多的是同时显示多个窗口。在1995年我很少有不是有最大限度的东西;现在十五年后,情况正好相反。

然而,有时人们会设计一些软件或网站,使用较低的对比度[1],最大化,并连接到服务器上的本地主机—,这就是他们做的唯一的评价。

[1]因为他们知道文字说什么,不需要自己读,所以较低的对比度看起来美学上更好。

2

在我看来,如果你需要停下来思考这个问题,那么数据太多了。一般来说,您应该设计您的应用程序,以便低端上网本和/或较慢互联网连接的用户仍能够运行它们。同时请记住,您的应用程序并不是您的用户同时访问的唯一页面。

我的建议是使用Firefox和Firebug做一些测量。查看请求在适度配置下完成多长时间。如果浏览器显示数据需要很长时间,那么最好不要重新设计。

+0

是的,关于上网本的好点。另外,还有其他人注意到现在找到一个拥有超过768个垂直像素的笔记本是多么的困难?我们实际上失去了房地产...... – Pointy 2010-02-08 12:38:12

2

一个好的指导原则应该是,与其担心浏览器是否能够处理的数据要发送它的体积,担心你用户是否可以处理它。这一切都取决于当然的呈现方式(即,为可视化工具绑定的大量数据将在一个画布中呈现一个复杂的图形,这与为一张巨大的表格绑定大量原始数据不同),但根据我的经验,用户的大脑在浏览器/网络/客户端计算机之前达到数据超载。

0

这实际上取决于您的外部数据将在您的Javascript中采取的形式。如果您想一次加载所有数据并将其作为具有许多属性的大对象(关联数组)存储在内存中,那么您会发现大多数当前桌面只能处理大约100k条目(使用小键值对)在性能真正降低之前。

如果可能的话,你应该看看是否有办法只加载用户在给定请求/交互中需要的数据。您可以使用AJAX来请求您认为用户可能需要的所需数据和预取数据。