В частности, как он отличается от значения по умолчанию (async: true
)?
В каких обстоятельствах я хочу явно установить async
в false
, и имеет ли он какое-то отношение к предотвращению запуска других событий на странице?
В частности, как он отличается от значения по умолчанию (async: true
)?
В каких обстоятельствах я хочу явно установить async
в false
, и имеет ли он какое-то отношение к предотвращению запуска других событий на странице?
Это имеет какое-то отношение к предотвращение других событий на странице от стрельбы?
Да.
Установка async в false означает, что оператор, который вы вызываете, должен завершиться до того, как вызывается следующий оператор в вашей функции. Если вы установите async: true, то этот оператор начнет выполнение, и следующий оператор будет вызван независимо от того, завершен ли оператор async.
Для получения дополнительной информации см.: jQuery ajax успешная анонимная функциональная область
async:false
= Код приостановлен. (Другой код ждет, чтобы завершить это.)async:true
= Код продолжение. (Ничто не приостанавливается. Другой код не ждет.)Проще всего это.
Async:False
будет содержать выполнение кода отдыха. Как только вы получите ответ от ajax, только тогда остальная часть кода будет выполнена.
Если вы отключите асинхронное извлечение, ваш script будет блокироваться до тех пор, пока запрос не будет выполнен. Это полезно для выполнения некоторой последовательности запросов в известном порядке, хотя я считаю, что обратные вызовы async должны быть более чистыми.
С
https://xhr.spec.whatwg.org/#synchronous-flag
Синхронный XMLHttpRequest за пределами рабочих находится в процессе удаления с веб-платформы, поскольку он оказывает вредное воздействие на конечный пользовательский опыт. (Это длительный процесс, который занимает много лет.) Разработчики не должны передавать false для аргумента async, когда глобальная среда JavaScript является средой документа. Пользовательским агентам настоятельно рекомендуется предупреждать о таком использовании в инструментах разработчика и может экспериментировать с вызовом исключения InvalidAccessError, когда это происходит. В будущем направлении будет разрешено только XMLHttpRequests в рабочих потоках. Сообщение должно быть предупреждением об этом.
Один из вариантов использования - сделать вызов ajax
до того, как пользователь закроет окно или покинет страницу. Это будет похоже на удаление некоторых временных записей в базе данных, прежде чем пользователь сможет перейти на другой сайт или закрыть браузер.
$(window).unload(
function(){
$.ajax({
url: 'your url',
global: false,
type: 'POST',
data: {},
async: false, //blocks window close
success: function() {}
});
});