Что я хочу, так это добавить панель загрузки в мой HTML, в то время как мой метод выполняет много времени на вызовы ajax и манипуляции с dom.Неожиданное поведение функции javascript
Проблема заключается в том, что метод show() не отображает панель загрузчика до тех пор, пока не будут выполнены вызовы ajax, как это исправить?
Я хочу заставить метод show(), затем делать ajax-вызовы и dom-вещи, а затем принудительно использовать метод hide().
Метод делает Ajax звонки:
$('.my-button').on('click', function(){
$('#display-loader').show();
// ajax and dom manipulation
$('#display-loader').hide();
});
EDIT: Похоже, что есть какое-то недоразумение, как к тому, что моя проблема. Если я изменить код для этого:
$('.my-button').on('click', function(){
$('#display-loader').show();
// ajax and dom manipulation
});
Он по-прежнему не будет показывать бар погрузчика, до тех пор пока Аякс метода сделана, как он пропускает метод шоу(), делает АЯКС вещь, а затем вызывает show() впоследствии.
Все вызовы ajax имеют асинхронный набор в значение false. У меня есть 5 вызовов ajax, и каждый вызов ajax зависит от данных, полученных от предыдущего вызова, у меня нет способа установить асинхронное значение true, есть ли способ обойти это и заставить dom отображать изображение и затем делать ajax звонки?
Вам нужно будет вызвать 'hideLoader' из обратного вызова' success' вашей функции ajax. –
Почему вы не вызываете $ ('# display-loader'). Show(); вместо showLOader(); и tehn внутри ajax -> success: funciont() {$ ('# display-loader'). hide(); } –
Ajax является (или должен быть) асинхронным !!! – Bergi