Я хочу отключить/предотвратить загрузку страницы до тех пор, пока вызов JS не будет завершен. Я понимаю, что единственный способ сделать это с $.ajax
так:
$.ajax({
url: "/acme/confirm_authentication.html",
async: false,
cache: false,
success: function(data) {
// loaded
}
В настоящее время я загружаю частичную страницу с .load()
функции следующим образом:
var linkUrl = $('.js-dialog--on-load').attr('dialog-href') + ' #lga';
showDialogWindow(linkUrl);
function showDialogWindow(linkUrl) {
$('.container').append($("<div>").load(linkUrl, function(){
}).addClass('js-dialog'));
}
Смотрите демо: http://jsfiddle.net/SQDDD/1/
Как я могу перевести это в вызов $.ajax
?
Помните, что я использую .load()
, так что я могу загрузить только часть сайта (#lga
).
@jbi Спасибо. Почему «асинхронное: ложное» зло? – Alex
@Alex, потому что он заморозит ваш браузер для возможного времени ожидания и обеспечит очень плохой пользовательский интерфейс. См. Http://stackoverflow.com/q/7588994/1236044 – jbl
@jbi Я вижу. Тогда нет смысла использовать '. $ .ajax' над' .load() 'правильно? – Alex