2013-09-30 1 views
14

자바 스크립트를 통해 자동 페이지 오류 감지 기능을 연구 중입니다. 대답을 통해 window.onerror을 통해 Javascript 컴파일 및 런타임 오류를 전체적으로 catch 할 수있는 몇 가지 질문을 발견했지만 브라우저 오류 콘솔에서 자주보고되는 다른 유형의 비 Javascript 오류는 언급하지 않았습니다. 네트워크 오류 (잘못된 URI, SSL 오류, HTTP 오류, 시간 초과) 및 자원 해석 오류 (일치하지 않는 유형으로 인해 리소스 해석이 중단되고로드 된 리소스의 오류를 구문 분석하는 등)에 주로 관심이 있습니다. 자바 스크립트에서 네트워크 오류를 잡아내는 글로벌 접근 방식이 있습니까?

은 내가 performance.getEntries 방법을 확인,하지만 난

내가 필요가 없습니다 (... 난 단지 크롬 29에서 확인)이 오류의 결과 네트워크 요청을 포함하지 않는 것 같습니다 것을 찾을 수 당황 해요 브라우저 간 호환성을 완벽하게 유지합니다. 일부 브라우저에서만 작동하고 다른 브라우저는 손상되지 않는 한 괜찮습니다.

+0

나는 대부분이 자바 스크립트로 감지 할 수없는 경고라고 생각한다. 그러나 각 요청에 고유 한 처리기를 추가하고 수동으로 해당 요청을 검사 할 수 있습니다. – Bergi

답변

2

window.onerror 핸들러는 Chrome 13 이상, Firefox 6.0 이상, Internet Explorer 5.5 이상, Opera 11.60 이상 및 Safari 5.1 이상에서 잘 작동합니다. 이미 많은 정보를 제공하고있는 really good answer on StackOverflow이 있습니다.

는 멀리 (예를 들어, 이미지) 다른 요소 관한 한 jQuery를 이미지 나 외부 스크립트로드 실패하면 사용자에게 경고하는 에러 이벤트 핸들러를 연결하는 .error() 방법을 제공한다. jQuery를 사용할 수없는 경우 다른 옵션은 XMLHttpRequest을 통해 모든 이미지/외부 리소스를 사전로드하고 요청의 status (HTTP 응답 코드)을 수신하는 것입니다 (200 OK 또는 304 Not Modified 이외의 것이 반환하려는 것임). 오류). 단점은 페이지가 완전히로드되기 전에 이벤트 처리기 등을 첨부해야하므로 JavaScript가 비활성화 된 사용자는 조각난 페이지 (빈 페이지 일 가능성이 있음)를 보게 될 것이라는 점입니다.

유효하지 않은 URI와 HTTP 오류은 서버 측에서 가장 잘 처리됩니다. 제대로 구성된 .htaccess 파일은 Apache의 mod_rewrite (또는 이와 동등한 버전)과 결합하여 서버에 대한 잘못된 요청에 많은 쿠션을 제공 할 수 있습니다.

+0

아쉽게도 두 번째 단락에서 언급 한 접근 방식은 전혀 글로벌 적이 지 않습니다. 전체 사이트를 다시 작성해야합니다. URI가 유효하지 않으며 서버로 전송되지 않으므로 유효하지 않은 URI를 서버 측에서 처리 할 수 ​​없습니다. 서버 소유의 경우 HTTP 오류를 모니터링 할 수 있지만 타사 리소스를로드하는 동안 오류를 확인하려면 어떻게해야합니까? –

+1

@FabioBeltramini : 전체 사이트를 다시 작성할 필요가 없습니다. 네이티브 함수 ([example] (http://stackoverflow.com/questions/15768369/custom-xmlhttprequest-prototype-open))에 대한 모든 호출을 차단하는 스크립트를 추가하고 추가 된 모든 리소스를 감시하면됩니다 DOM에. 코드를 건드리지 않고도 오류 처리기를 동적으로 추가 할 수 있습니다. – Bergi

+0

jQuery가 필요 없다고 생각합니다.

관련 문제