我有一个设计问题。我有一个网站,用户可以在其中输入短消息并将其显示给其他用户。有时这些消息中有格式,所以我需要操作字符串。我可以在服务器或客户端上执行此操作。我的问题是它应该发生在哪里?
如果它发生在服务器上,那么服务器上会有更多的负载以及更多的数据要推送到客户端。然而,服务器机器通常是比用户拥有的“更好”的机器。
如果它发生在客户端上,则字符串操作会向用户偏移,但我不确定 javascript/jquery 字符串操作的效率如何。
对此有什么想法吗?
我有一个设计问题。我有一个网站,用户可以在其中输入短消息并将其显示给其他用户。有时这些消息中有格式,所以我需要操作字符串。我可以在服务器或客户端上执行此操作。我的问题是它应该发生在哪里?
如果它发生在服务器上,那么服务器上会有更多的负载以及更多的数据要推送到客户端。然而,服务器机器通常是比用户拥有的“更好”的机器。
如果它发生在客户端上,则字符串操作会向用户偏移,但我不确定 javascript/jquery 字符串操作的效率如何。
对此有什么想法吗?
我无法想象一个“短消息”需要进行如此多的字符串操作,以至于客户端机器明显不如服务器。放在客户端上。
根据您对短的定义(> 1024 个字符对我有用),您必须翻阅其中的很多内容才能对您的服务器产生重要影响。
也就是说……从客户端到服务器的往返次数越少越好。首先尝试在 JavaScript 中执行此操作。如果需要,然后将其移至服务器。
好吧,我不确定您是如何将此字符串发送给其他用户的,但我假设您无论如何都将其发送回您的服务器,所以问题是,您是否应该在客户端将其清理干净,然后将其发送到服务器,或者只是采取无论你得到什么并在服务器上清理它。
如果您可以保证启用了 javascript,那么将其卸载到客户端确实会在每次调用时减少服务器上的许多额外迷你进程,并将该负载分配给客户端,这非常棒。
需要考虑的事情......如果你只是在 javascript 中这样做,你不能保证你得到什么,因为你没有检查/清理服务器上的字符串。这可能很危险,具体取决于您如何将此信息发送给其他用户。想想javascript注入攻击。
如果您在服务器上执行此操作,那么您实际上不必担心它,因为您可以保证您发送的内容正是您想要的,而不是仅仅通过任何内容并希望客户端上的 javascript 能够覆盖您。
与您在每个消息服务器端执行的任何其他操作相比,您是否真的进行了如此多的事务,以至于字符串操作是一个重要因素?
我很想尽可能地把它放在客户端。我什至可以继续压缩客户端代码/在消息到达时提取消息,以节省我的 Web 服务或任何正在传递消息的带宽。