JavaScript XHR 원본 추적
JavaScript XHR 원본 추적을 사용하면 브라우저에서 XMLHttpRequest 또는 Fetch 요청 중에 서로 다른 스택 트레이스에 대해 서블릿 호출을 분할할 수 있어, 프로파일된 JVM의 활동을 브라우저의 동작과 더 잘 연관시킬 수 있습니다. 다음에서 "XHR"은 XMLHttpRequest와 Fetch 메커니즘 모두를 지칭합니다.
브라우저 플러그인
이 기능을 사용하려면 브라우저로 Google Chrome을 사용하고 JProfiler 원본 추적기 확장 프로그램을 설치해야 합니다.
Chrome 확장 프로그램은 툴바에
추적이 활성화되면 JProfiler 확장 프로그램은 페이지를 다시 로드하라는 메시지를 표시합니다. 이는 계측을 추가하기 위해 필요합니다. 페이지를 다시 로드하지 않기로 선택하면 이벤트 감지가 작동하지 않을 수 있습니다.
추적 상태는 도메인별로 지속됩니다. 추적이 활성화된 상태에서 브라우저를 다시 시작하고 동일한 URL을 방문하면 페이지를 다시 로드할 필요 없이 추적이 자동으로 활성화됩니다.
JavaScript XHR 트리
XHR 호출이 JProfiler의 활성 프로파일링 세션에 의해 프로파일된 JVM에 의해 처리되는 경우, JavaScript XHR 뷰는 이러한 호출의 누적 호출 트리를 표시합니다. 뷰가 비어 있는 경우, 뷰 상단의 "범위"를 "모든 XHR 호출"로 전환하여 XHR 호출이 발생했는지 확인할 수 있습니다.
Javascript
트리의 상단에는
확장 프로그램은 여러 인기 있는 JavaScript 프레임워크를 인식하고 이벤트의 대상 노드에서 이벤트 리스너가 위치한 노드까지의 상위 계층을 탐색하여
표시 및 호출 트리 분할에 적합한 속성을 찾습니다. 프레임워크별 속성을 찾지 못하면 id
속성에서 멈춥니다.
ID가 없는 경우 a
, button
또는 input
과 같은 "제어 요소"를 검색합니다.
모두 실패하면 이벤트 리스너가 등록된 요소가 표시됩니다.
경우에 따라 흥미로운 속성의 자동 감지가 적합하지 않을 수 있으며 다른 호출 트리 분할을 선호할 수 있습니다. 예를 들어, 일부 프레임워크는 자동 ID를 할당하지만 모든 요소를 동작에 대한 의미적 설명과 함께 그룹화하는 것이 더 읽기 쉬울 수 있습니다. 다른 호출 트리 분할을 달성하려면 HTML 속성을 추가하십시오.
data-jprofiler="..."
대상 요소 또는 대상과 이벤트 리스너의 위치 사이의 요소에 추가합니다. 해당 속성의 텍스트는 분할에 사용되며 다른 속성은 무시됩니다.
호출 트리 분할
호출 트리 뷰에서 XHR 호출은 브라우저 이벤트와 호출 스택의 각 개별 조합에 대해 호출 트리를 분할합니다.
setTimeout()
호출과 같이 진행 중인 이벤트가 없는 경우 마지막 몇 개의 스택 프레임이 인라인으로 표시됩니다.
이러한 노드의 "더 보기" 하이퍼링크는 뷰→노드 세부 정보 표시 작업에 의해 열리는 것과 동일한 세부 정보 대화 상자를 엽니다. JavaScript 분할 노드의 경우 세부 정보 대화 상자는 노드의 텍스트가 아니라 전체 브라우저 호출 스택을 표시합니다. 다른 JavaScript 분할 노드의 호출 스택을 검사하려면 비모달 세부 정보 대화 상자를 열어 두고 해당 노드를 클릭하십시오. 세부 정보 대화 상자는 자동으로 내용을 업데이트합니다.