0

我正在设计一个向 Web 客户端以及移动客户端(第 2 阶段)提供数据/信息的服务器。数据将填充图表;成像绘制 5 年内每天的股票价格(显示最小值/最大值/平均值)。

1] 如果我向客户端发送 3000 个数据点,则需要发送大量数据,然后进行绘图。相反,如果我在服务器上构建图形,我可以向客户端发送 PNG。哪个更好?

2] 在 5 年内绘制每个点是一种不好的做法吗?MySQL有没有办法一次平均5个数据点(天)并返回它?

仍处于设计阶段,但我意识到这个决定会真正影响应用程序的性能。

4

1 回答 1

0

你能估计一下你将要发送的数据量吗?3000 个数据点可以是 12K(每个 4 字节float)和 100K(时间戳 + 文本格式的值)之间的任何值。虽然 12K 不算什么,但 100K 很重要,尤其是对于移动设备。

处理时间也很重要。与在画布上生成图表相比,使用一些较低级别的语言在服务器上生成数据并返回 PNG 会更加高效。

但是您应该考虑图表的分辨率。如果要绘制 3000 个点,则水平方向至少需要 3000 个像素。如今最大的屏幕达到2560 像素宽度,这意味着您将永远无法显示所有数据,您将不得不隐藏一些点。手机上就差很多了。争取 200-300 像素宽度和至少两倍的数据点。

话虽如此,我建议采用以下方法:

  • 计算平均值并向浏览器返回不超过 100-200 个数据点(平均值必须是智能的,这样您就不会失去一些有趣的极端情况)。

  • 在浏览器上使用数十个 JavaScript 图表库之一

  • 一旦您需要更详细的信息,用户可以放大图表,这将要求服务器提供更高分辨率的数据。

于 2012-12-02T17:12:02.723 回答