Вход

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


victor zotov
03.02.2016, 15:40
Приветствую.

Надо сделать чтоб что-то выводилось на экран на время выполнения 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
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
в Опере этот глюк кто-то победил?

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

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

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