在 Rails 中使用 Turbolinks,如果请求花费很长时间,无论是预期的还是非预期的,浏览器都没有通常的提示来显示任何事情正在发生。
我创建了一个要点,它使用加载对话框来解决此问题,如果请求花费的时间超过 500 毫秒(这是可配置的),该对话框会自动弹出。
https://gist.github.com/cpuguy83/5016442 https://gist.github.com/cpuguy83/5016442
@PageSpinner =
spin: (ms=500)->
@spinner = setTimeout( (=> @add_spinner()), ms)
$(document).on 'page:change', =>
@remove_spinner()
spinner_html: '
<div class="modal hide fade" id="page-spinner">
<div class="modal-head card-title">Please Wait...</div>
<div class="modal-body card-body">
<i class="icon-spinner icon-spin icon-2x"></i>
 Loading...
</div>
</div>
'
spinner: null
add_spinner: ->
$('body').append(@spinner_html)
$('body div#page-spinner').modal()
remove_spinner: ->
clearTimeout(@spinner)
$('div#page-spinner').modal('hide')
$('div#page-spinner').on 'hidden', ->
$(this).remove()
$(document).on 'page:fetch', ->
PageSpinner.spin()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)