Я смущен, почему я не могу получить текстовые обновления во время выполнения javascript/jquery/ajax..innerHtml обновления текста во время выполнения сценария
У меня есть следующий код.
$("#updates").html("Collecting your team names.");
YourTeamFirst(YourTeam, TeamValue);
$("#updates").html("Collecting their team names.");
TheirTeamNext(TheirTeam, TeamValue);
$("#updates").html("Gathering ID's.");
setNames(TeamValue);
$("#updates").html("Setting Details.");
setChampRatios(TeamValue);
$("#updates").html("Setting Ratios.");
setChampKDRS(TeamValue);
$("#updates").html("Finished!");
т.е.
Пример функции (только Аякса, что происходит в суб-функций, фактические вызовы функций и обновления текста в простой функции JS, не АЯКС на что ...)
function TheirTeamNext(TheirTeam, TeamValue) {
$.ajax({
url: "/PlayerLookUp/TheirRankedData",
type: "POST",
data: "IDList=" + T[i],
dataType: "json",
async: false,
success: function (resp) {
//just boring logic
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 0) {
alert("Issue with reaching Riot API server. Pleast contact an Admin.");
}
}
});
}
И единственное, что когда-либо появляется, это «Закончено» (после завершения сценария), почему вообще ничего не появляется? Выполнение занимает около 10 секунд, чтобы другие обновления отображались в файле innerHtml/Html. Я также пробовал использовать document.getElementById("updates").innerHTML = ...
, который также ничего не показывает, когда его результат покажет текст «Законченный».
Каждая функция представляет собой JQuery, Ajax или javascript с несколькими назад и вперед от моего контроллера C#, но я чувствую, что текстовые обновления все равно должны обновлять мой текст innerHtml, если нет какой-либо скриптовой вещи, о которой я не знаю innerHtml/Html ...
ТАКЖЕ: Если я брошу в alert()
где-нибудь, появится самое последнее текстовое обновление. Так почему же только прерывание предупреждения или завершение выполнения скрипта будет обновлять/публиковать мой текст. Я хочу, чтобы мои пользователи увидели обновленные сообщения о работе со сценарием.
Пожалуйста, разместите полный пример кода, чтобы мы могли видеть все, что вы делаете. Скорее всего, все ваши инструкции .html() выполняются, но слишком быстро, чтобы увидеть что-либо, кроме последнего обновления. Опять же, без кода это карта, чтобы сказать, но поскольку вы сказали, что предупреждение работает, и предупреждение блокирует, это моя догадка. – j08691
@ j08691 Если проблема похожа на «распространение», сейчас это занимает около 10 секунд, так как я выполняю сторонние API-вызовы, которые занимают всего 1-2 секунды, и я делаю около 20 пока. – Austin
Вы должны принудительно выполнить перерисовку пользовательского интерфейса, прежде чем блокировать пользовательский интерфейс браузера, что означает между вызовом метода html() и синхронными ajax-тегами. Это говорит о довольно неясном вопросе imho –