0

Require.js와 Handlebars를 사용하는 웹 응용 프로그램을 개발 중이며 IE9를 제외한 모든 브라우저에서 올바르게 작동합니다. IE9에서 Handlebars Require.js 모듈 (hbs.js)이 Handlebars 리소스를로드하기 위해 요청을 무작위로 중단합니다 - 때로는 성공하고 실패하면 요청이 실패 할 때 명확한 패턴이 없습니다 (사실 Handlebars 요청 만 실패하고, JavaScript 리소스에 대한 모든 요청은 성공합니다). 네트워크 창에서 요청은 (Aborted)으로 표시되고 개시자는 (Pending...)이며 더 이상의 정보는 없습니다.IE9에서 Handlebars 리소스에 대한 Require.js 요청이 무작위로 중단됩니다.

다른 모든 곳에서 작동하기 때문에 구성 오류가 아닌 프레임 워크의 브라우저 호환성에 문제가 있으므로 구성을 생략합니다. 아무도 무슨 일이 일어나고 있는지에 대해 어떤 생각을 가지고 있습니까?

(참고 : 몇 시간 동안 파고 들었을 때 이미 해결책을 찾았으며 같은 문제가 발생할 수있는 다른 사람들을 위해 게시했습니다. 해결책은 이미 herehere으로 설명되어 있지만 그 답변을 찾는 것 XDomainRequest이 문제가 될 수 있음을 이미 알아 냈습니다. 프레임 워크 코드를 파헤쳐 야 할 필요가 있습니다.)

답변

2

hbs.js은 이전 IE 버전에서 XDomainRequest을 사용합니다. IE9에서 XDomainRequest 요청이 즉시 완료되지 않으면 IE9가 onprogress 콜백을 실행하려고 시도하고 콜백이 없으면 요청을 중단합니다. 즉, XDomainRequest.onprogress 콜백을 신청하지 않으면 요청이 IE9에서 임의로 실패합니다.

xhr.onprogress = function() {}; 

즉시 hbs.js

if (useXdr) { 
    xhr.onload = function() { callback(xhr.responseText); } 

후 : 우리는 (가 최신 버전에서 수정되었습니다)이 이벤트에 가입하지 않은 사용하고 구독을 추가 하였다 hbs.js 버전은 문제를 해결.

관련 문제