2011-01-28 79 views
3

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

回答

7

写一些AJAX魔术;)启动的时候显示加载图像,并把它隐藏AJAX调用完成时。如果你不想使用AJAX,以及,嗯,你可以看看这个:

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

还有一个宝石在那里,这一定程度上做到这一点。 但我没有任何经验。 我会去的AJAX方法=)

编辑:

是啊,你应该调用jQuery中使用AJAX创建行动。你可以这样做:

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() 

} 
+0

AJAX是有道理的。是否有任何特殊的Rails方式来做到这一点,或者如果我通过jQuery AJAX请求调用create action来完成这项工作? (对Rails和AJAX没有经验) – Lee 2011-01-30 15:27:19

相关问题