Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.10.2011, 16:56
Интересующийся
Отправить личное сообщение для kolyan1983 Посмотреть профиль Найти все сообщения от kolyan1983
 
Регистрация: 04.03.2011
Сообщений: 23

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

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

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

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


В нормальных браузерах появляется надпись "Загрузка...", потом выполняется СИНХРОННЫЙ аякс запрос. И после получения ответа вместо надписи "Загрузка..." появляются полученные данные.
В ИЕ надпись "Загрузка..." появляется на долю секунды уже после получения ответа и сразу затерается данными. Браузер как бы блокируется, но еще до того как выведется надпись.
Кто нибудь знает как решить эту проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2011, 17:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от kolyan1983
Браузер как бы блокируется
Он не как бы блокируется, а блокируется. Запрос-то синхронный, браузер зависает на время запроса. Любой браузер, не только IE.
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2011, 17:29
Интересующийся
Отправить личное сообщение для kolyan1983 Посмотреть профиль Найти все сообщения от kolyan1983
 
Регистрация: 04.03.2011
Сообщений: 23

Я понимаю что он блокируется. Но почему перед этим не выполняется $('#inner').html('Загрузка...'); ? строка не появляется. а появляется только после получения ответа
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2011, 17:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Выполняется, но не рендерится. Другие браузеры (подозреваю, что не все) совершенно случайно успевают показать эту строчку.
Ответить с цитированием
  #5 (permalink)  
Старый 26.10.2011, 17:39
Интересующийся
Отправить личное сообщение для kolyan1983 Посмотреть профиль Найти все сообщения от kolyan1983
 
Регистрация: 04.03.2011
Сообщений: 23

Я правильно понимаю, что несмотря на то что код раньше $.ajax... его результат должен появиться на экране толька после синхронного запроса?
Ответить с цитированием
  #6 (permalink)  
Старый 26.10.2011, 17:52
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Любые результаты появляются только после того, как JavaScript завершит свою работу.
Ответить с цитированием
  #7 (permalink)  
Старый 26.10.2011, 19:20
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь с доработкой JS, исправить 1 баг, можно даже за $ Kanzaki Элементы интерфейса 18 14.09.2011 21:21
Очередной баг jQuery? monolithed jQuery 8 27.01.2011 10:16
Забавный баг (фича?) в Chrome / Safari Cr@ZyBoY Opera, Safari и др. 11 22.02.2010 17:26
Баг с jpeg в ie6 JsLoveR Элементы интерфейса 20 28.01.2010 20:57