我正在开发一个项目(URL:example),我有一个表格,可以在表格的许多行(20)中加载许多选项(超过6000个)。
表格是这样的:
User role permission machine
在机器栏中有一个这样的表格:
<form action="/example" method="get">
<select>
<% session[:var].map(&:to_i).sort.each do |var| %>
<option><%= var.to_s.force_encoding('UTF-8') %></option>
<%end%>
</select>
</form>
问题是当访问URL时,由于var
变量加载了所有机器,因此需要加载机器列中的所有数据。 (这个电话的大小是3.2 Mb)。
当用户选择一个选项时,页面会再次加载。但是在这一点上,当用户选择一个选项时,我可以使用AJAX来避免这种刷新。
我的问题是:
是否也可以使用AJAX在输入网址(示例)时加快页面速度,或者有任何表格可以加快此加载过程。
答案 0 :(得分:0)
我预先填充第一个可见页面的结果(例如,25个结果),然后 对结果进行分页,从而允许刷新但减少每个响应的数据,< em>或使用AJAX在滚动/推送更新按钮时更新结果。大多数数据库ORM库都有一个可以使用的分页插件。
这里没有需要 AJAX。请记住,AJAX只是调用网站API,没有什么特别之处,它仍然只是一堆要求响应的HTTP调用。通过将一些处理推送到客户端,AJAX让您有机会错开其中一些,这是主要的事情。
考虑将您的路线/应用分为提供页面和仅提供数据的路线/应用。您甚至可以通过using the request.xhr?
object method组合提供呈现和数据的路由,例如
if request.xhr?
json {my: data, goes: here}
else
erb :index, :locals => {my: data, goes: here}
end
或
{{1}}
当用户选择一个选项时,页面再次加载
你绝对可以在这里使用AJAX来避免页面刷新 - 他们已经拥有了数据,为什么要刷新?