IE 7 오류 : "응용 프로그램이 입력 동기 호출을 디스패치하기 때문에 발신 전화를 할 수 없습니다."


2

내가 만든 웹 응용 프로그램과 상호 작용할 때이 오류 (게시물 제목 참조)가 때때로 발생합니다. 이 애플리케이션은 Ajax를 사용하여 서버와 통신하지만 IE에만 ​​특화된 기능은 없다. Firefox 또는 Safari에서 동일한 응용 프로그램을 실행할 때이 오류 또는 다른 오류가 발생하지 않습니다.

이전에이 오류 메시지를 보았습니까?이 문제를 일으킬 수있는 원인을 알고 있거나이를 처리하는 방법에 대한 권장 사항이 있습니까?

3

이것은 일반적인 COM 오류입니다. AJAX 구성 요소 인 XmlHttpRequest는 COM 개체이므로 COM의 규칙을 따르는 것입니다. 여기에서 일어날 가능성이있는 것은 XmlHttpRequest가 들어오는 이벤트를 전달하고 있다는 것입니다. 이 이벤트에 대한 응답으로 다른 아파트의 다른 COM 객체를 호출하여 궁극적으로 교착 상태가 발생할 수있는 코드가있을 수 있습니다. COM은이를 감지하고 이것이 일어나지 않도록합니다.

일반적으로이 유형의 응용 프로그램을 대기열을 사용하여 분해하는 것이 좋습니다. 이벤트에 즉시 응답하는 대신 이벤트를 대기열에 저장하고 즉시 반환하십시오. 그런 다음 타이머를 사용하여 비동기 적으로 이벤트를 처리하십시오.

  0

그래서 XmlHttpRequest 객체가 콜백 JavaScript 함수를 호출 할 때 코드를 바로 실행하지 말고 대신 나중에 window.setTimeout()을 사용하여 실행해야한다고 말하고 있습니까? 22 feb. 092009-02-22 06:39:10

  0

예, 그게 제가 제안하는 것입니다. 23 feb. 092009-02-23 22:44:02

  0

좋아. Ajax 응답이 도착하면 바로 JS를 실행하지 않고 setTimeout()을 사용하여 나중에 실행하려고 시도했지만, 불행히도 도움이되지 않습니다. 24 feb. 092009-02-24 01:26:24

  0

솔루션을 찾았습니까? IE 7과 8에서 같은 문제가 붙어 있습니다. 16 nov. 112011-11-16 14:14:05