IE Explorer 9 не рендерится до завершения функции ajax / json - PullRequest
1 голос
/ 30 октября 2011

В основном у меня есть этот код. Я пытаюсь просто обновить div, но первый вызов innerHTML либо не работает, либо никогда не отображается в браузере.

Второй работает, но добавляет «Complete» после завершения вызова ajax. Я уверен, что это как-то связано с вызовом ajax, но я не понимаю, почему это происходит, потому что в Firefox нет проблем. Кто-нибудь знает, что не так или есть ошибка в Firefox или что-то? Зачем IE даже ждать, чтобы сделать вызов innerHTML. Разве div не должен обновляться сразу после вызова, или IE Explorer немного подождет?

document.getElementById("status").innerHTML = '<div>Loading</div>';

$jQuery.ajax({
         type: "POST", 
         url: urlValue, 
         data: parameters, 
         cache: false,
         async: false, 
         dataType: "json"
});

document.getElementById("status").innerHTML = '<div>Complete</div>';

Ответы [ 2 ]

4 голосов
/ 30 октября 2011

Почему бы просто не сделать это асинхронно?

var status = $('#status');

status.html('<div>Loading</div>');

jQuery.ajax({
    type: "POST", 
    url: urlValue, 
    data: parameters, 
    cache: false,
    dataType: "json",
    success: function() {
        status.html('<div>Complete</div>');
    }
});
0 голосов
/ 30 октября 2011

попытаться выполнить этот код при полной загрузке.Возможно, в тот момент, когда

document.getElementById("status").innerHTML = '<div>Loading</div>';

исполняемый DOM не готов к доступу к нему.

  1. При готовности DOM - установка «значения загрузки»
  2. Выполнение запроса AJAX («загрузка отображается до конца»)
  3. После завершения настройки"Complete"

В любом случае, пока DOM не готов, вы не можете изменить его.За исключением document.write, но это немного другая история.

Возможно, это поможет

setTimeout(function(){document.getElementById("status").innerHTML = '<div>Loading</div>';},0);

ajax post request ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...