在Rails 3中执行任务时显示加载屏幕

时间:2011-01-28 18:30:42

标签: ruby-on-rails ajax

如果我的'创建'操作需要一段时间才能加载(由于进行API调用然后进行计算)这个任务是什么,这是向用户显示“加载屏幕”的最佳方式在后台执行?

1 个答案:

答案 0 :(得分:7)

编写一些AJAX魔法;)激活时显示加载图像,并在AJAX调用完成后隐藏它。如果你不想使用AJAX,嗯,你可以查看:

http://yehudakatz.com/2010/09/07/automatic-flushing-the-rails-3-1-plan/

那里还有一颗宝石,有点那样做。 但我对此没有任何经验。 我会选择AJAX方法=)

编辑:

是的,您应该在jQuery中使用AJAX调用create action。你可以这样做:

function create() {

    $('#loading_image').show();

    $.ajax({
     type: 'POST',
     url: /* URL to your create action: e.g. '/user/create/' */,
     data: $('form').serialize(),
     success: createSuccessHandler,
     error: createErrorHandler,
     complete: hideLoadingImage
    });

}

function createSuccessHandler(data) {

    alert("User created!")

}

function createErrorHandler(data) {

    alert("It failed, ffs!")

}

function hideLoadingImage() {

    $('#loading_image').hide()

}