为大约 100 条记录中的每条记录呈现一个表单或使用 ajax 加载单个表单是否更快?

Is it faster to render a form for each of ~100 records or load individual forms with ajax?

我有一个评论模型,其中 has_many 回复。我将在任何给定页面上收到大约 100 条评论,并且每条评论都应该可以选择是否对其进行回复。这要求每个评论都以某种方式有自己的回复表单。

以下哪种方法在我的服务器上更容易?

1.) 在页面加载时为每个评论加载一个表单,并立即用 javascript 隐藏每个表单。每个评论还有一个按钮,单击该按钮会显示表单。当用户单击其他任何地方时,表单再次隐藏。

2.) 每个评论都以一个按钮和一个空 div 开头。当用户单击所述按钮时,空的 div 将通过 ajax 填充表单。当用户点击其他地方时,div 再次清空。

我说的表格很简单。它会是这样的:

  <%= form_for([@comment, @reply], remote: true ) do |f| %>
    <%= f.text_area :text %>
    <%= f.submit "Post" %>
  <% end %>

如有任何意见,我们将不胜感激。

  1. 总之AJAX比较好。您的访问者不应该等待所有的评论加载来查看页面。仅加载主页内容,例如文章,然后通过 AJAX 加载评论部分。

  2. 有100个隐藏的空窗体是非常糟糕的设计。我建议按需放置甚至创建表单,即当用户单击按钮 "say" 时。请注意,带有默认 'submit' 按钮的 'classic' asp 表单将在用户每次发布内容时重新加载所有页面。我建议只使用一组控件和按钮 'save' 来使用 AJAX 上传新的评论/答案,并在响应时更新页面的唯一必要部分。

  3. 单击 'anywhere else' 令人困惑。 'Save' / 'Cancel' 按钮提供了更好的可用性。