服务器端或Javascript计算

Server side or Javascript calculations?

本文关键字:计算 Javascript 服务器端      更新时间:2023-09-26

通常,在服务器端还是在javascript端进行大量数据计算对性能更好?

我有一堆数据正在页面上显示,我想知道我是否应该在服务器端(在python中)对这些数据进行格式化/解析/计算并返回模板,或者我是否应该按原样返回数据并在javascript端进行所有计算/格式化?

在做出这些决定时,有什么一般的经验法则吗?

我正在计算的事情的例子——将时间戳转换为日期。

这在很大程度上取决于你想要做什么。如果图表是动态的和动画的,那么在客户端使用js可能是唯一的选择。这也取决于你有多少数据。如果你有超过10mb的原始数据,我不建议在js中进行。

首先,您应该考虑更改用于存储要显示的数据的数据格式。它应该已经以方便显示的方式存储了——这根本不需要任何处理。

如果您仍然需要重新计算数据,请考虑在服务器端进行,因为这样可以缓存此结果(例如在mamched中),因为在每次页面刷新时计算这些结果是没有意义的。

最糟糕的选择是在客户端重新计算它们,因为这可能会在客户端浏览器上带来难以检测到的明显性能问题(例如,在较大的数据上),并且您可能无法在测试环境中看到这种问题(您可以看到您的服务器正在放缓,但很难看到某些客户端将您的页面渲染得非常非常慢,除非他们给您写信)。

除了thedk所陈述的事实之外,您还应该记住,您在客户端进行的计算更有可能失败,因为客户端可能无法满足某些先决条件。想想禁用的JavaScript或不可靠的互联网连接。数据一离开服务器,您通常就无法控制数据。

因此,最好只将不重要的计算转移到客户端。像日期时间格式这样的东西可能还可以,但不要试图用JavaScript解析整个网站。即使客户端禁用了JavaScript,您的网站也应该正常工作(并且看起来可以接受)。