服务器端或Javascript计算
Server side or Javascript calculations?
通常,在服务器端还是在javascript端进行大量数据计算对性能更好?
我有一堆数据正在页面上显示,我想知道我是否应该在服务器端(在python中)对这些数据进行格式化/解析/计算并返回模板,或者我是否应该按原样返回数据并在javascript端进行所有计算/格式化?
在做出这些决定时,有什么一般的经验法则吗?
我正在计算的事情的例子——将时间戳转换为日期。
这在很大程度上取决于你想要做什么。如果图表是动态的和动画的,那么在客户端使用js可能是唯一的选择。这也取决于你有多少数据。如果你有超过10mb的原始数据,我不建议在js中进行。
首先,您应该考虑更改用于存储要显示的数据的数据格式。它应该已经以方便显示的方式存储了——这根本不需要任何处理。
如果您仍然需要重新计算数据,请考虑在服务器端进行,因为这样可以缓存此结果(例如在mamched中),因为在每次页面刷新时计算这些结果是没有意义的。
最糟糕的选择是在客户端重新计算它们,因为这可能会在客户端浏览器上带来难以检测到的明显性能问题(例如,在较大的数据上),并且您可能无法在测试环境中看到这种问题(您可以看到您的服务器正在放缓,但很难看到某些客户端将您的页面渲染得非常非常慢,除非他们给您写信)。
除了thedk所陈述的事实之外,您还应该记住,您在客户端进行的计算更有可能失败,因为客户端可能无法满足某些先决条件。想想禁用的JavaScript或不可靠的互联网连接。数据一离开服务器,您通常就无法控制数据。
因此,最好只将不重要的计算转移到客户端。像日期时间格式这样的东西可能还可以,但不要试图用JavaScript解析整个网站。即使客户端禁用了JavaScript,您的网站也应该正常工作(并且看起来可以接受)。
- 从JSON数组计算javascript中的日期差异
- 计算JavaScript中的时间差异(天+小时+分钟+秒)
- 计算 JavaScript 中数组中元素的出现次数
- 计算JavaScript中句子(数组)中字符(数组)的出现次数
- 计算javascript对象中的出现次数
- 计算 JavaScript 的问题
- 简单计算 - JavaScript
- 计算 Javascript 数组索引的出现次数
- 计算 JavaScript 数组中对象的出现次数
- 很难计算Javascript的总数
- 计算 JavaScript 中数组中元素的频率
- 计算 javascript 中的 http 请求数
- 用于计算 JavaScript 中字符串的正则表达式
- 计算 JavaScript 中以 ISO 8859-7 编码的文件的字节大小
- 借助firebug或IE 8调试器或chrome调试器来计算javascript函数流的方法
- 如何计算javascript中登录尝试的最大次数
- 如何计算javascript html字符串变量中的行数
- 使用Date对象计算Javascript执行速度是否正确
- 计算JavaScript对象中属性百分比的变化
- 如何计算Javascript中字符串之间的时差?