Мой текущего приложения AJAX с помощью JQuery выглядит следующим образом (упрощенный):XmlHttpRequest Прогресс EventHandler Совместимость в Internet Explorer
$.ajax({
url: '/somefile',
timeout : timeOutVar,
success: function(data) {
console.log('success');
},
error: function(data) {
console.log('error');
}
});
Я обновил этот код, чтобы использовать progress
EventHandler следующим образом.
$.ajax({
url: '/somefile',
timeout : timeOutVar,
success: function(data) {
console.log('success');
},
error: function(data) {
console.log('error');
},
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("progress", function(evt){
console.log('progress');
}, false);
return xhr;
}
});
Это прекрасно работает в Internet Explorer 10 и во всех других современных браузерах. Однако в старой версии Internet Explorer у меня возникла проблема. IE9,8,7 не вызывают обработчик событий progress
, но success
, когда все загружается.
Так что я задаюсь вопросом, есть ли проблемы совместимости в этих старых версиях Internet Explorer. К сожалению, я не смог найти какой-либо ресурс, который точно определяет, какие части XmlHttpRequest
работают в IE-версии. Кто-нибудь знает такой ресурс или что может быть неправильным в коде?
Определение обработчика событий 'progress' в' beforeSend' не работает, возможно, потому, что сам jQuery не поддерживает 'progress'. – str