Показать экран загрузки при выполнении задачи в Rails 3 - PullRequest
3 голосов
/ 28 января 2011

Если мое действие «создать» требует времени для загрузки (из-за выполнения вызова API, а затем вычисления) , как лучше всего показать пользователю «экран загрузки» во время выполнения этой задачина заднем плане?

1 Ответ

7 голосов
/ 28 января 2011

Напишите немного магии AJAX;) Показать загрузочное изображение при активации и скрыть его после завершения вызова AJAX. И если вы не хотите использовать AJAX, ну, хм, вы можете проверить это:

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

Там также есть драгоценный камень, который несколько делает это. Но у меня нет никакого опыта с этим. Я бы пошел на метод AJAX =)

EDIT:

Да, вы должны вызывать действие создания с AJAX в jQuery. Вы могли бы сделать:

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...