Я использую $.post
для отправки структуры json, созданной из пользовательского ввода:
$.post(
url1,
{'input': JSON.stringify(input)},
function(data) {
if (data['status']) window.location.href = url2;
else window.location.href = url1;
}
);
Перенаправление всегда происходит после публикации.Моя проблема в том, что браузер, кажется, неактивен во время публикации и не показывает никакой активности (то есть процесса загрузки) до тех пор, пока не начнется перенаправление, что приводит к примерно 1 секунде, когда, по-видимому, ничего не происходит.Под активностью я подразумеваю только стандартные способы, которыми браузеры сообщают пользователю, что он загружает страницу (например, круг прогресса, показанный на моих вкладках Firefox).Есть ли способ вызвать это стандартное поведение, как только начинается публикация?
РЕДАКТИРОВАТЬ: Некоторые люди спрашивали, почему я просто не использую отправку стандартной формы.Ну, это потому, что данные, которые мне нужно отправить, довольно сложны для сборки, и я не знаю, можно ли что-то подобное сделать стандартными (не-ajax) способами.Вот как я строю данные:
var input = [];
$('.shopCat > p > input').each(function() {
input.push({
'id': $(this).closest('div').attr('id'),
'name': $(this).val(),
'parent': $(this).closest('div').attr('data-parent');
});
});
Можно ли создавать и публиковать такие данные с помощью стандартной формы публикации?(Итак, сейчас я задаю два вопроса.)