Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Баг с синхронным аякс запросом в ИЕ (https://javascript.ru/forum/css-html-internet-explorer/22613-bag-s-sinkhronnym-ayaks-zaprosom-v-ie.html)

kolyan1983 26.10.2011 16:56

Баг с синхронным аякс запросом в ИЕ
 
Есть функция:

function showTab()
{
    $('#inner').html('Загрузка...');

    $.ajax({
        url: 'Какой то урл',
        data: 'какие-то данные',
        async: false,
        dataType : "json",   
        cache: false,  
        success: function (answer, textStatus) { 
                
            // Обработка answer в результате которой 
            // получена new - обработанные данные

            $('#inner').html(new);
        }
    });
}


В нормальных браузерах появляется надпись "Загрузка...", потом выполняется СИНХРОННЫЙ аякс запрос. И после получения ответа вместо надписи "Загрузка..." появляются полученные данные.
В ИЕ надпись "Загрузка..." появляется на долю секунды уже после получения ответа и сразу затерается данными. Браузер как бы блокируется, но еще до того как выведется надпись.
Кто нибудь знает как решить эту проблему?

Kolyaj 26.10.2011 17:23

Цитата:

Сообщение от kolyan1983
Браузер как бы блокируется

Он не как бы блокируется, а блокируется. Запрос-то синхронный, браузер зависает на время запроса. Любой браузер, не только IE.

kolyan1983 26.10.2011 17:29

Я понимаю что он блокируется. Но почему перед этим не выполняется $('#inner').html('Загрузка...'); ? строка не появляется. а появляется только после получения ответа

Kolyaj 26.10.2011 17:36

Выполняется, но не рендерится. Другие браузеры (подозреваю, что не все) совершенно случайно успевают показать эту строчку.

kolyan1983 26.10.2011 17:39

Я правильно понимаю, что несмотря на то что код раньше $.ajax... его результат должен появиться на экране толька после синхронного запроса?

Kolyaj 26.10.2011 17:52

Любые результаты появляются только после того, как JavaScript завершит свою работу.

Snipe 26.10.2011 19:20

А что, действительно нужен синхронный аякс?


Часовой пояс GMT +3, время: 16:22.