У меня проблема с Internet Explorer, который отображает и скрывает значок «мышление» на синхронных вызовах.Я понимаю разницу между асинхронностью и синхронизацией, но синхронные вызовы должны позволять отображать изображение, выполнять AJAX, а затем скрывать изображение.В Firefox изображение показывает, что выполняется AJAX, и изображение исчезает ... но этого не происходит в IE и Chrome.
function get(url, cache){
var resp;
$('#pmt_ajaximg').show();
$.ajax({
url: url,
dataType: 'json',
async: false,
context: document.body,
cache: cache,
success: function(response){
if(response && response.hello){
console.log(response.hello);
}
$('#pmt_ajaximg').hide();
}
});
}
Я пытался переместить $('#pmt_ajaximg').hide()
в его complete()
функция в $.ajax object
, но это тоже не сработало.Интересно, что если я закомментирую $('#pmt_ajaximg').hide()
полностью, я действительно вижу, что изображение появляется и остается там, так что я знаю, что оно изначально работает.
Кроме того, я также добавил console.log('test')
к функции success()
, и он показывает ПОСЛЕ того, как результат возвращается из AJAX, но $('#pmt_ajaximg').hide()
, кажется, сразу запускается, таким образом скрывая $('#pmt_ajaximg').show()
эффекты, прежде чем он имеет шанс показать.
Кроме того, прежде чем кто-либо скажет, что изображение может не быть таким быстрым, обратите внимание, что это упрощенная версия функции, и настоящая действительно требует некоторого времени, и, как я уже сказал, появляется в FF.
Очень странно.Есть идеи?