ste*_*bot 17 javascript java server-side client-side
我想知道客户端javascript在原始计算能力方面与服务器端Java相比有多快.
例如,排序.如果可能的话,是否应该在服务器端完成?如何迭代集合?
Rex*_*x M 19
答案非常复杂,取决于具体情况.
服务器通常比客户端机器强大几个数量级; 托管代码通常比脚本编写快得多.
但是 - 客户机通常还有很多未使用的备用计算能力,而服务器可能正在为数千个用户运行请求.因此,在这种情况下,可以卸载到客户端的大部分工作都是可取的.
您必须了解用户对应用程序中每个单独功能的需求和期望,并查看组织的相对负载与开发成本,以便在两个环境之间拆分开发并找出最有效的方法.例如,您的用户可能希望您的网站不会冻结他们的浏览器或导致不幸的"此网页正在吃您的计算机"对话框,因此您的客户端脚本应该是智能编写的.这并不是说你不能在客户端做大量的工作(你可以),你只需要聪明地做你如何做,并记住它阻止UI线程.
服务器端Java肯定会运行得更快,你需要针对你的特定情况进行基准测试,但你可能正在考虑10-20倍的速度优势.
然而,这可能并不重要:无论原始计算能力如何,我仍然建议尝试在Javascript中尽可能多地计算客户端,原因如下:
当然有很好的理由把东西放在服务器上,例如:
但如果这些不适用,那么我会尝试尽可能地向客户推送.
这里的最大区别不是VM的速度.不同之处在于,单个服务器必须为数十个或数百个客户端提供服务.另一个因素:到服务器的往返会增加很多开销,所以你想要最小化它们.
基本上,任何非安全关键,可以在客户机上轻松完成,应在客户端上完成的.