Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器端还是Javascript计算?_Javascript_Python_Django_Django Templates - Fatal编程技术网

服务器端还是Javascript计算?

服务器端还是Javascript计算?,javascript,python,django,django-templates,Javascript,Python,Django,Django Templates,一般来说,在服务器端还是在javascript端进行大量数据计算对性能更好 我在页面上显示了一堆数据,我想知道是应该在服务器端(python)对这些数据进行格式化/解析/计算并返回一个模板,还是应该按原样返回数据并在javascript端进行所有计算/格式化 在做这些决定时,有没有一般的经验法则 我正在计算的示例—将时间戳转换为日期 这在很大程度上取决于你想做什么。如果图表是动态的和动画化的,那么使用js在客户端执行它可能是唯一的选择。这还取决于你有多少数据。如果你有超过10MB的原始数据,我不

一般来说,在服务器端还是在javascript端进行大量数据计算对性能更好

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

在做这些决定时,有没有一般的经验法则


我正在计算的示例—将时间戳转换为日期

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

首先,你应该考虑改变你的数据格式来存储一个用于显示的数据。它应该已经以方便的方式存储以显示它-这根本不需要任何处理

如果你仍然需要重新计算数据,考虑做服务器端,因为这给了你缓存这个结果的可能性(例如在In),因为在每个页面刷新中计算它们是没有意义的。


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

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


因此,最好只将不重要的计算转移到客户端。类似datetime formation的方法可能还可以,但不要尝试用JavaScript解析整个网站。你的网站应该可以工作(并且看起来可以接受)即使客户端禁用了JavaScript。

对于每个用户可能位于不同时区的日期,将其放在客户端会使您的页面更易于缓存。如果您可以将计算卸载给用户,那就更好了。但是如果CALC承载着大量数据,那么您必须平衡服务器cpu时间节省。向客户端发送原始数据所增加的带宽成本。