一般来说,在服务器端或javascript端进行大量数据计算会更好吗?
我有一堆数据,我正在页面上显示 - 我想知道我是否应该在服务器端(在python中)格式化/解析/计算该数据并返回模板或者如果我应该按原样返回数据并在javascript端进行所有计算/格式化?
做出这些决定时是否有任何一般的经验法则?
我正在计算的事情示例 - 将时间戳转换为日期。
答案 0 :(得分:2)
这很大程度上取决于你想要做什么。如果图表是动态的和动画的,那么用js做客户端可能是唯一的选择。它还取决于您拥有多少数据。如果你有超过10mb的原始数据,我不建议你在js中这样做。
答案 1 :(得分:2)
首先,您应该考虑更改用于存储数据以进行显示的数据格式。它应该以便于显示的方式存储 - 完全不需要任何处理。
如果您仍需要重新计算数据,请考虑在服务器端进行,因为这样可以缓存此结果(例如在mamceched中),因为在每次刷新页面时计算它们都没有意义。 / p>
最糟糕的选择是重新计算客户端,因为这会很难检测客户端浏览器上的明显性能问题(例如,在大型数据上),并且您可能无法在测试环境中看到此类问题(您可以看到你的服务器正在变慢,但很难看到一些客户端渲染你的页面非常慢 - 除非他们写信给你。
答案 2 :(得分:1)
除了thedk所述的事实之外,您还应该记住,您在客户端进行的计算更有可能失败,因为客户端可能无法满足某些先决条件。想想禁用的JavaScript或不可靠的互联网连接。一旦离开服务器,您通常无法控制数据。
因此,最好只将不重要的计算移动到客户端。像datetime形成这样的东西可能没问题,但是不要试图用JavaScript解析整个网站。即使客户端禁用了JavaScript,您的网站也应该可以工作(并且看起来可以接受)。