服务器端ruby与客户端js api速度/组织

时间:2012-02-14 04:11:59

标签: javascript ruby-on-rails ruby api

假设我有AR对象的某些字符串属性,例如'filename'和'title',我希望动态填充前端选择框的方式是在该对象的JSON表示中使用ajax并且如果标题attr存在,则显示标题attr作为select选项的文本;如果标题attr为空,则使用文件名attr作为select选项的文本。现在,我应该在服务器端执行这个 - 其他 - 那个逻辑,并在我的对象的JSON表示中返回它,就像'display_name'attr那样,或者我应该返回vanilla as_json表示只包含AR attrs的对象,让js决定是否显示标题attr或文件名attr作为选择选项的文本?据我所知,JS比ruby快得多,但与此同时,在服务器端拥有这种逻辑似乎更易于维护。我还想知道,一般来说,在客户端w / js或服务器端w / ruby​​上执行逻辑的速度更快?谢谢!

2 个答案:

答案 0 :(得分:0)

你真的不应该在这里过多地担心速度 - 除非你做错了什么,否则你真的不会受到if / else语句引起的性能问题的困扰。

相反,为了清晰和简单。在这种情况下,这可能意味着直接在服务器上呈现页面,除非由于某种原因数据已经在JSON中。

答案 1 :(得分:0)

我的建议是将逻辑放在该位置。如果逻辑与表示/渲染有关,那么我将其放在您的表示层中。从您的描述来看,这似乎是您的客户端JS。

我建议您尽可能不让API呈现/呈现其数据。这样一来,您无需更改API返回的有效负载的结构即可更改视图。

根据我的经验,表示层的更改往往比它们所呈现的数据的基础结构变化更多。 我同意先前的回答,我不会担心这里的速度,而将关注点明确分开。