как выполнить Javascript перед кодом AJAX - PullRequest
0 голосов
/ 22 октября 2018

Я знаю, что есть некоторые проблемы, связанные с этим, но ни одна из них не помогла, вот такая ситуация: у меня есть модал и при продолжении я хочу показать загрузочный GIF, который у меня уже есть и работает нормально.

Проблема в том, что мой ajax-код выполняется первым, поэтому gif загрузки показывает миллисекунд в конце и закрывается.

<!-- Modal -->
<div class="modal fade" id="modalChangeStatusGeneral" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div id="myLoader" class="loader"></div>
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="mdlStatusRobot">¡CARE!</h5>
            </div>
            <div class="modal-body">
                Doing smth?
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal" >Cancel</button>
                <button type="button" class="btn btn-primary" onclick="changeGeneralStatus()" data-dismiss="modal" id="btnContinuar">Continue</button>
            </div>
        </div>
    </div>
</div>

Сценарий:

function changeGeneralStatus() {
    $("#myLoader").show();

    $.ajax({
        type: "POST",
        url: '/changeStatus/',
        data:"",
        async: false,
        success: function (result) {
            refresh();
        }
    });
}

1 Ответ

0 голосов
/ 22 октября 2018

Пара вещей здесь:

  1. Аякс не запускается первым, если бы вы увидели, что прядильщик никогда не уйдет, потому что код шоу будет срабатывать после аякса.То, что вы видите, правильно, ваш счетчик отображается, но ответ на вызов ajax настолько быстр, что он уходит почти мгновенно.
  2. Если это не то, что вы хотите, и вы хотите показать счетчик длянемного вы могли бы поместить свой ajax-вызов в setTimeout (), однако, на мой взгляд, он не нужен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...