是为大约100条记录中的每一条呈现一个表单更快,还是用ajax加载单个表单更快

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

本文关键字:表单 一个 加载 单个 ajax 100条 记录 一条      更新时间:2023-09-26

我有一个Comment模型,它有_many Replies。我将在任何给定的页面上有大约100条评论,每条评论都应该有写回复的选项。这要求每条评论都有自己的回复表单。

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

1.)页面加载时,每个Comment加载一个表单,并立即用javascript隐藏每个表单。每个Comment还有一个按钮,单击该按钮会显示表单。当用户单击其他任何位置时,表单将再次隐藏。

2.)每个Comment都以一个按钮和一个空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个隐藏的空表单是非常糟糕的设计。我建议根据需要放置甚至创建表单,即当用户单击"说"按钮时。请注意,每次用户发布内容时,带有默认"提交"按钮的"经典"asp表单都会重新加载所有页面。我建议只需要一组控件和按钮"保存",就可以使用AJAX上传新的评论/答案,并在响应时更新页面中唯一必要的部分。

  3. 点击"其他任何地方"会让人感到困惑"保存"/"取消"按钮提供了更好的可用性。