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

Server-side ruby vs client-side js api speed/organization

本文关键字:速度 组织 js-api ruby 客户端 服务器端      更新时间:2023-09-26

假设我有AR对象的某些字符串属性,例如"filename"answers"title",我希望在前端动态填充选择框的方法是在该对象的JSON表示中使用ajax,如果存在,则将title attr显示为select选项的文本,如果title attr为空,则将filename attr用作select选项的文字。现在,我应该在服务器端执行我刚才描述的其他逻辑,并在对象的JSON表示中以类似于"display_name"attr的形式返回它吗,或者我应该返回对象的普通as_json表示,只包含AR属性,并让js决定是将标题属性还是文件名属性显示为select选项的文本?据我所知,JS比ruby快得多,但同时,在服务器端拥有这种逻辑似乎更容易维护。我还想知道,一般来说,在客户端w/js上还是在服务器端w/ruby上执行逻辑更快?谢谢

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

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

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

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

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