【问题标题】:How can I determine to use server code or client code [closed]如何确定使用服务器代码或客户端代码 [关闭]
【发布时间】:2016-12-28 06:01:39
【问题描述】:

我了解任何 与 UI 相关的事情都应该始终在服务器端完成。

在这种情况下,有一个服务器对象作为客户端对象传递,我想知道的方法非常适合任何人操作。

在这种情况下,我是否应该始终在对象上使用客户端方法来减轻服务器的一些负载并保持服务器代码简短?还是我应该从服务器重新获取对象并尽可能在对象上使用服务器端方法以确保返回的结果始终相同?什么是rails way?

我不担心哪种方式会花费更长的时间,但哪种方式最好?

【问题讨论】:

  • 你能举个具体的例子吗?这确实取决于具体情况,并且因情况而异。
  • 我不是在寻找一个特定的案例,我只是想知道,如果我真的可以选择在同一个对象上使用客户端或服务器端方法而不会造成任何伤害,我应该使用哪个?
  • 猜猜我的答案是。无论您喜欢什么并且对您的项目有意义。也许这个问题更适合softwareengineering.stackexchange.com
  • @akuhn 在提及其他网站时,指出cross-posting is frowned upon 通常会有所帮助

标签: javascript php ruby-on-rails ruby client-server


【解决方案1】:

以验证为例。一个正常的系统应该有(至少)3级验证:

  • 客户
  • 服务器
  • 数据库

对于一条数据,所有三个级别都必须产生相同的结果。 客户端验证仅有助于改善用户体验,不能替代服务器和数据库验证。

【讨论】:

  • 感谢您提到验证,我之前从未听说过这个术语
  • 您能否准确解释“所有三个级别必须为一条数据产生相同的结果”的意思,所以您的意思是,如果我在服务器端有一个方法可以一些东西,我必须在客户端有一些做同样事情的东西?
  • 好吧,您一定已经完成了一千次电子邮件验证。在客户端,您有 Javascript 正则表达式来验证电子邮件字符串。这改善了用户体验,用户可以快速修复输入错误。验证通过后,您将数据发布到服务器。在服务器上,当您收到电子邮件字符串时,您有服务器代码来再次验证该电子邮件,因为您永远不应该相信我们从客户端获得的内容。当服务器验证通过时,您将数据放入数据库。在那里,您可能有一些约束或触发器,或存储过程来再次验证电子邮件字符串。
猜你喜欢
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多