나의 현재 AJAX 응용 프로그램 (간체) :XMLHttpRequest의 진행 이벤트 핸들러 호환성은 다음과 같이 jQuery를 보이는 사용하는 인터넷 익스플로러
$.ajax({
url: '/somefile',
timeout : timeOutVar,
success: function(data) {
console.log('success');
},
error: function(data) {
console.log('error');
}
});
나는 다음과 같이 progress
이벤트 핸들러를 사용하여 해당 코드를 업데이트했습니다.
$.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 버전에서 작동하는지 정확히 정의한 리소스를 찾을 수 없었습니다. 누구나 그러한 리소스를 알고 있거나 코드에서 무엇이 잘못되었을 수 있습니까?
'beforeSend'에서'progress' 이벤트 핸들러를 정의하는 것이 효과가 없습니다. 아마 jQuery 자체가'progress'를 지원하지 않기 때문입니다. – str