如何在页面之间显示页面加载

Qui*_*uin 6 ruby-on-rails heroku ruby-on-rails-4

我不确定所有Rails应用程序的行为是否相同,或者只是在我的应用程序设置中.对于我的应用程序,当一个页面加载时(所以当点击一个链接直到从服务器响应内容的那一刻),根本没有指示页面加载.在一般网站页面加载期间,在图标的位置将有一个旋转轮来显示页面正在加载.我在Heroku上使用Rails 4.0.0.

das*_*ous 7

来自Turbolinks,有类似的东西吗?

$document.on('page:fetch', function() {
  // show spinner
});

$document.on('page:change', function() {
  // hide spinner
});
Run Code Online (Sandbox Code Playgroud)

Turbolinks的更新5

对于Turbolinks 5:

$document.on('turbolinks:click', function() {
  // show spinner
});

$document.on('turbolinks:load', function() {
  // hide spinner
});
Run Code Online (Sandbox Code Playgroud)

如果你正在使用jQuery并且你的微调器在div.spinner,你可以用以下方式显示和隐藏它:

$(document).on("turbolinks:click", function(){
  $(".spinner").show();
});

$(document).on("turbolinks:load", function(){
  $(".spinner").hide();
});
Run Code Online (Sandbox Code Playgroud)


coo*_*sse 6

Rails默认使用turbolinks.

请看看turbolinks及其工作原理.它基本上取代了页面的主体,而不是发出新的请求,这就是为什么你在浏览器中看不到加载指示的原因.

如果你想看到你的页面加载你可以禁用turbolinks,从application.js中删除它,或使用像这样的宝石:https://github.com/caarlos0/nprogress-rails来显示页面的实际加载.

我强烈建议你继续使用turbolinks并选择我给你的第二个选项.