有些日子我真的陷入困境,找不到解决这个问题的方法:加载页面时需要花费很多时间加载,因为有些部分正在加载select option
数千个条目。
我想在调用页面时停止加载它,并在用户点击+
符号时允许选择选项。
代码:
<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>
部分?还是有更好的主意?
答案 0 :(得分:0)
好吧,经过几天的挣扎,我找到了一个使用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
。
因此,通过这种方式,我避免为表格中的每一行加载整个select options
,从而加快或加快页面的加载过程。