Мне нужно, чтобы div, который покрывал весь мой экран, отображался до вызова sync ajax.
Но, похоже, что абсолютно ничего, что я пытаюсь сделать, приводит к изменению DOM, чтобы показать этот div передAjax Call.Экран «зависает», и div отображается только после выполнения вызова ajax.
Я уже пробовал «тысячи» подходов, но, похоже, ничто не может запустить ajax только после изменения DOM (показываетdiv).
HTML
[...]
<body>
<div id="loadingDiv" style="display: none; width: 100%; height: 100%; background-color: #004000; position: absolute; z-index:10000;"></div>
[...]
javascript
[...]
$("#loadingDiv").css("display", "block");
var ajaxOp;
$.ajax({
type: someType,
url: someUrl,
data: someData,
dataType: someDataType,
async: false,
success: function (someArg) {
ajaxOp = someArg;
},
error: function (someArg0, someArg1, someArg2) {
// do something
}
});
return ajaxOp;
[...]
ПРИМЕЧАНИЕ I: Я использую JQuery.
ПРИМЕЧАНИЕ II: «ajaxOp» не может быть «неопределенным».
ОБНОВЛЕНИЕ: В надежде, что это поможет пониманию и по просьбе @Felipe Dutra FerreiraЯ поместил еще несколько объяснений по поводу проблемы в обновлении ниже ...
РЕАЛЬНЫЙ СЛУЧАЙ: У меня есть приложение с несколькими устаревшими кодами, которые используют libray js с функцией, которая, в свою очередь, делает вызовы ajax (давайте назовем это "определенной функцией").Мы пытаемся обновить это приложение, чтобы оно отображало «экран загрузки» во время вызовов ajax (а не просто «блокировало» интерфейс во время этих вызовов).Таким образом, самый простой способ справиться с этой проблемой - это отобразить «экран загрузки» сразу после вызовов «определенной функции» и до того, как он выполнит вызовы ajax.Также обратите внимание, что «определенные функции» возвращают выходные данные вызова ajax, и эти выходные данные будут «неопределенными», если этот вызов не выполняется синхронно, то есть код может продолжиться только после того, как этот вызов ajax будет иметь выходные данные.