Я открываю окно модального окна, чтобы показать «информационное сообщение обработки» с m_arc_dl.php
. После того, как p_archive_dl.php
запустил (обработка заканчивается), я закрываю модальное окно.закрытие бутстрапа модальное ... иногда оно не закрывается
То, что я заметил, время от времени модальное не закрывается ... похоже, что ответ от p_archive_dl.php
действительно быстрый. Я предполагаю, возможно, это потому, что модальная фаза исчезает, и она не полностью загружена до того, как произойдет закрытие вызова?
Любые предложения, чтобы я мог предотвратить это?
// show processing message
$('#modal-ajax').load(
'/modals/m_arc_dl.php',
function() {
$(this).modal('show');
}
);
$.ajax({
type: 'post',
url: '/process/p_archive_dl.php',
data: $(form).serialize(),
dataType : 'json'
}).done(function (response) {
if (response.success)
{
// create hidden iframe with the 'src' attribute set to the file to download
var dlif = $('<iframe/>',{'src':'/showdownload.php?file='+response.file+'&files='+response.files+'&ts=1&un=1'}).hide();
// append iframe to body
$(document.body).append(dlif);
}
// close the modal
$('#modal-ajax').modal('hide');
});
У вас есть два асинхронных запросов, так что не удивительно, что иногда их обратные вызовы успеха выполняются в порядке, не вы-хотите. Вы можете либо сделать второй запрос с первого успеха, либо использовать какой-то флаг, чтобы определить, будет ли выполняться или нет. $ (This) .modal ('show'); '. – Regent
В моем случае проблема была с неполными тегами html. Например, забыть закрыть тег попёрно. Затем, после закрытия модального, я застрял с черным прозрачным фоном. – Beri
@Regent - даже не передумал, но это имеет смысл. Просто заверните второй ajax в функцию и вызовите ее из первого после модального открытия. Кажется, делает трюк. Спасибо что подметил это! – user756659