在后端/前端生成热图的优缺点是什么?

时间:2016-10-10 23:26:07

标签: svg frontend backend

我有一个测量空气污染的传感器网络。我想制作一份这种污染的热图,并在我的网站上向用户展示。

我正在考虑最好的方法。热像图应该在后端还是前端生成?两种解决方案的优缺点是什么?任何细节 - 比如我应该将热图发送到前端的格式(也许使用SVG?)将非常感激。

我可以在后端生成的热图中找到这些专业人士:

  • 与其他服务轻松集成 - 例如,如果我想向Slack用户发送空气污染地图,我可以下载地图图块并将生成的热图放在上面。
  • 易于改变 - 例如。如果我想改变生成热图的方式(比如颜色),我不必在其他所有地方更改它,例如网页应用,Android应用,iOS应用......

缺点:

  • 可能需要向客户发送更多数据。

此外,您是否可以列出任何放在地图上的后端/前端生成内容的真实示例?

1 个答案:

答案 0 :(得分:2)

回答最佳解决方案的内容有点难。这一切都取决于数据。

  • 如果你说,中等数量的数据点,大约50-100,并且喜欢在高分辨率显示器上进行清晰的渲染,那么SVG就是你的选择。
  • 如果您有数百或数千个数据点,那么使用SVG渲染这些数据点可能会成为客户端的性能杀手。在这种情况下,将所有内容渲染到服务器端的位图并将其发送到客户端。

示例:

  • Google地图(或任何其他地图服务)将地图渲染为服务器端的位图图块。浏览器中的经典Google地图(例如显示谷歌地图的ios Safari)将不再做任何事情。甚至街道名称也会呈现给位图。 (值得注意的是,在功能更强大的平台上,例如桌面Chrome,事情变得更加棘手。)

  • JS端图表解决方案将在客户端呈现内容。看起来很棒的数据集高达几百点。遗憾地对现实生活数据感到失望(例如,在股市行业工作,例如“显示苹果股票价格”的例子可以使这些解决方案岌岌可危。(Apple股票的所有价格变化从1990年开始 - 包括蜱水平数据(所以每天数以千计的变化)是一个不同的联盟。

仅仅为了记录,在经过数月开发工作的最近一个项目中,我们无法使客户端基于画布的渲染在所有平台上运行得相当好,并且选择了服务器端渲染并在4天内解决了问题工作。