如何在 Sinatra 中使用局部视图加快页面加载速度
How to make faster the page loading using partial views in Sinatra
几天以来我真的被困住了,无法找到解决这个问题的方法:加载页面时需要很长时间才能加载,因为有些部分正在加载 select option
包含数千个条目。
我想在调用页面时停止加载它,并在用户单击 +
符号时允许 select 选项。
代码:
<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>
<input type="submit" value="+" />
</form>
如何避免一开始就加载 <select>
部分?或者有什么更好的主意吗?
好吧,经过几天的努力,我找到了使用 partials 的解决方案。
页面加载时的第一个部分只有+
,这意味着select option
没有加载。仅当用户通过单击需要它时。
<div class="delegate">
<%= erb_partial :partial_empty %>
</div>
在这个partial_empty
中是这样的:
<span class="empty">+</span>
使用 jquery 我创建了一些这样的代码:
$(document).ready(function(){
$(".empty").click(function(){
$('#partial_with_select_options).load(encodeURI("URL to controller"));
});
});
我正在向控制器发送一些变量,以便能够填写我的 select option
。
因此,通过这种方式,我避免了为 table 中的每一行加载整个 select options
,从而加速或加快页面的加载过程。
几天以来我真的被困住了,无法找到解决这个问题的方法:加载页面时需要很长时间才能加载,因为有些部分正在加载 select option
包含数千个条目。
我想在调用页面时停止加载它,并在用户单击 +
符号时允许 select 选项。
代码:
<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>
<input type="submit" value="+" />
</form>
如何避免一开始就加载 <select>
部分?或者有什么更好的主意吗?
好吧,经过几天的努力,我找到了使用 partials 的解决方案。
页面加载时的第一个部分只有+
,这意味着select option
没有加载。仅当用户通过单击需要它时。
<div class="delegate">
<%= erb_partial :partial_empty %>
</div>
在这个partial_empty
中是这样的:
<span class="empty">+</span>
使用 jquery 我创建了一些这样的代码:
$(document).ready(function(){
$(".empty").click(function(){
$('#partial_with_select_options).load(encodeURI("URL to controller"));
});
});
我正在向控制器发送一些变量,以便能够填写我的 select option
。
因此,通过这种方式,我避免了为 table 中的每一行加载整个 select options
,从而加速或加快页面的加载过程。