我在这样的rails中使用coffee
的ajax请求。
$('#reload').on(
'click': -> $('#response').html "<div class='panel'><img src='assets/load.gif'/></div>"
'ajax:success': (data, res, xhr) ->
$('#response').html res
)
此代码工作正常,但是当我将click
事件更改为ajax:send
事件时(我认为它更恰当地代表了我正在做的事情。),那么代码的工作方式就差不多了。
点击后出现panel
,但加载图像仅在2或3秒后出现。
我将像以前一样在这次click
事件中使用。但我想知道为什么它会避免我未来的错误。
答案 0 :(得分:0)
由于我以错误的方式使用了turbolink,因此出现了图像的延迟。
我的整个代码都是这样的。
$ ->
$('#reload').on(
'ajax:send': -> $('#response').html "<div class='panel'><img src='assets/load.gif'/></div>"
'ajax:success': (data, res, xhr) ->
$('#response').html res
)
我将$ ->
重写为ready = ->
并添加了此代码,然后延迟不再发生。
$(document).ready(ready)
$(document).on('page:load', ready)
答案 1 :(得分:0)
你也可以使用ajax:before
$('#reload').bind('ajax:before', function() {
$('#response').html("<div class='panel'><img src='assets/load.gif'/></div>");
});