Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не могу сделать "wait, loading..." (https://javascript.ru/forum/jquery/61088-ne-mogu-sdelat-wait-loading.html)

victor zotov 03.02.2016 15:40

не могу сделать "wait, loading..."
 
Приветствую.

Надо сделать чтоб что-то выводилось на экран на время выполнения ajax-запроса. Знаю, что тема избита, много читал, пробовал. Не работает, зараза! Помогите, пожалуйста.

Код:
$.ajax({
url: 'php.php',
type: 'POST',
dataType: 'text',
async: false,
data: {
...
},
beforeSend: function() {
$('#wait_container').show();
},
complete: function() {
$('#wait_container').hide();
},
success: function(s) {
...
},
error: function() {
...
}
});

Код работает так, будто beforeSend вообще нет.
Вместо beforeSend выносил .show() до $.ajax() - та же фигня, нет сообщения. Если же после .show() вставить alert() - всё отображается. Я так понимаю, что тут что-то с обновлением экрана? Помогите, пожалуйста советом.

Спасибо.

рони 03.02.2016 16:57

Цитата:

Сообщение от victor zotov
async: false,

браузер ничего не будет делать с таким параметром пока не придёт ответ

victor zotov 03.02.2016 17:11

даже beforeSend?
сообщение не выводится на экран, даже когда .show() стоит до $.ajax().
даже когда async: true, я проверял.
да, речь идёт об Опере последней версии.

victor zotov 04.02.2016 10:39

ау! в Опере этот глюк кто-то победил?
поделитесь, пожалуйста.
Спасибо, вы добрые люди.

laimas 04.02.2016 11:53

Цитата:

Сообщение от victor zotov
в Опере этот глюк кто-то победил?

Зачем, работает везде:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    $.ajax({
        type : 'POST',
        url : 'http://main/',
        data : {a : 1},
        beforeSend : function() {
            $('#load').show()
        },
        error : function() {
            $('#load').hide()
        } 
    })
});
</script>     
</head> 
<body>
<div id="load" style="display:none">Load...</div>
</body> 
</html>


а у вас просто где-то есть ваш баг.


Часовой пояс GMT +3, время: 08:26.