【问题标题】:Server-side ruby vs client-side js api speed/organization服务器端 ruby​​ 与客户端 js api 速度/组织
【发布时间】:2019-03-16 08:17:25
【问题描述】:

假设我有一个 AR 对象的某些字符串属性,例如“文件名”和“标题”,而我希望在前端动态填充选择框的方式是在该对象的 JSON 表示中进行 ajax如果存在,则将标题 attr 显示为选择选项的文本,或者如果标题 attr 为空,则使用文件名 attr 作为选择选项的文本。现在,我应该执行我刚刚在服务器端描述的 this-else-that 逻辑,并在我的对象的 JSON 表示中将其返回为类似于“display_name”属性的东西,还是应该返回 vanilla as_json 表示仅包含 AR 属性的对象并让 js 决定是否将标题 attr 或文件名 attr 显示为选择选项的文本?据我所知,JS 比 ruby​​ 快得多,但同时,在服务器端拥有这种逻辑似乎更易于维护。我还想知道,一般来说,在客户端使用 js 还是在使用 ruby​​ 的服务器端执行逻辑更快?谢谢!

【问题讨论】:

    标签: javascript ruby-on-rails ruby api


    【解决方案1】:

    您真的不必在这里过分担心速度 - 除非您做错了什么,否则您不太可能真的遇到由 if/else 语句引起的性能问题。

    相反,要保持清晰和简单。在这种情况下,这可能意味着直接在服务器上渲染页面,除非数据由于某种原因已经在 J​​SON 中。

    【讨论】:

      【解决方案2】:

      我的建议是把逻辑放在它所属的地方。如果逻辑是关于表示/渲染的,那么我会把它放在你的表示层中。根据您的描述,这似乎是您的客户端 JS。

      我建议您尽可能让您的 API 不知道他们的数据是如何呈现/呈现的。这将允许您更改视图,而无需更改 API 返回的有效负载的结构。

      根据我的经验,表示层的变化往往比它们呈现的数据的底层结构更频繁。 我同意前面的回答,这里我不担心速度,并且明确分离关注点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-20
        • 1970-01-01
        • 1970-01-01
        • 2012-07-25
        • 2019-03-18
        • 2021-10-29
        • 1970-01-01
        相关资源
        最近更新 更多