gpt4 book ai didi

javascript - 如何在 Ruby on Rails 中使用 Ajax 加载部分内容

转载 作者:行者123 更新时间:2023-11-27 23:56:34 25 4
gpt4 key购买 nike

当检测到搜索时,我有一个部分要加载。在某些情况下,加载可能需要很长时间,因此我希望在页面完全加载后通过 Ajax 加载,否则很可能会导致超时。

我目前的做法是导致同步加载。

我还希望显示加载屏幕,直到完全加载。这当前有效,但仅在设置超时的情况下有效,因为它是同步加载。

    <% if(params[:q][:name_cont].present?) %>

<script>
$( document ).ready(function() {

function load_partial() {
$("div.super_search").replaceWith('<%= escape_javascript(render partial: 'super_search_tp') %>');
}

// use setTimeout() to execute
setTimeout(load_partial, 1000)

});

</script>

<div class="super_search">

<i class='fa fa-spinner fa-spin'></i> Loading Product Analysis...

</div>

<% end %>

最佳答案

为 Controller 中的部分创建一个方法:

  def super_search
@search = @@products
render :layout => false
end

重命名该部分,使其成为此方法的 View 。

@@products添加到索引方法中,以便搜索中的数据可以在新方法中使用:

@@top_products = @q.result

渲染部分的代码:

<% if(params[:q][:name_cont].present?) %>

<script>

$.ajax({
url: "/products/super_search",
cache: false,
success: function(html){
$("#foo-bar").replaceWith(html);
}
});

</script>

<div class="super_search" id="foo-bar">

<i class='fa fa-spinner fa-spin'></i> Loading Product Analysis...

</div>

<% end %>

关于javascript - 如何在 Ruby on Rails 中使用 Ajax 加载部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com