화면 로드 로깅 가이드
예시
화면 스크립트
/** * 가정 사항 * SYSUtil이라는 공통 모듈에 아래의 CallbackScreenLoadLog 함수 있음 * 현재 화면이 "SCREENLOADLOG" 팝업으로 이름으로 모달리스 방식으로 로드됨 * 예시) factory.loadpopup("SCREENLOADLOG", "/SYS/UTIL/ScreenLoadLog", "SCREENLOADLOG", false, XFD_BORDER_RESIZE, 0, 0, true, bModal, screen); * CALLBACK_SCREEN_LOADLOG 실행 파라미터값: "SYSUtil.CallbackScreenLoadLog" * SCREEN_LOADLOG_SHOWTYPE 실행 파라미터값: 2 * 예시) 0:console trace(default), 1:browser console, 2:callback * objScreenLoadInfo 파라미터 구조 * var objScreenLoadInfo = { * start_date: "20211014", // 화면 로딩 시작 일자 * start_time: "123456", // 화면 로딩 시작 시각 * * screen_url: "screen_url", // 화면 URL * screen_id: "screen_id", // 화면 ID * screen_title: "screen_title", // 화면 타이틀 * * time_total: "0", // 데이터 송신전 시간부터 데이터 수신, 처리, 콜백함수 처리 완료 시간 기준(단위: ms) * // (time_server + time_xml + time_js + time_render) * time_server: "0", // 데이터 송신전 시간부터 데이터 수신 완료 시간 기준(단위: ms), XML 및 JS 중 긴 시간값 * time_xml: "0", // XML 파싱 시간 기준(단위: ms) * time_js: "0", // JavaScript 파일 파싱 시간(단위: ms) * time_ui: "0", // 화면 생성 시간(단위: ms) * * size_xml: "0", // XML 파일 크기(단위: byte) * size_js: "0", // JavaScript 파일 크기(단위: byte) * size_component: "0" // 화면내 컴포넌트 갯수 * }; */ // SYUtil 공통 모듈에 추가될 함수 예시 시작 /* function CallbackScreenLoadLog(objScreenLoadInfo) { var objPopupScreen, objPopupMember; objPopupScreen = factory.findpopup("SCREENLOADLOG"); if (objPopupScreen) { objPopupMember = objPopupScreen.getmembers(); if (objPopupMember) { objPopupMember.process_screenloadloginfo(objScreenLoadInfo); } } } */ // 화면 로드 이벤트 처리 function screen_on_load() { // SCREEN_LOADLOG 실행 파라미터 정보를 구해 체크 상태 표시 this.chk_loadlog.setcheck(factory.getscreenloadlog()); } /** * 화면 로딩 로그 정보 오브젝트 처리 * @param objScreenLoadInfo 화면 로딩 로그 정보 오브젝트 */ function process_screenloadloginfo(objScreenLoadInfo) { var row_index; row_index = this.grd_list.addrow(false, false); this.grd_list.setitemtextex(row_index, 0, objScreenLoadInfo.start_date, false); this.grd_list.setitemtextex(row_index, 1, objScreenLoadInfo.start_time, false); this.grd_list.setitemtextex(row_index, 2, objScreenLoadInfo.screen_url, false); this.grd_list.setitemtextex(row_index, 3, objScreenLoadInfo.screen_id, false); this.grd_list.setitemtextex(row_index, 4, objScreenLoadInfo.time_total, false); this.grd_list.setitemtextex(row_index, 5, objScreenLoadInfo.time_server, false); this.grd_list.setitemtextex(row_index, 6, objScreenLoadInfo.time_xml, false); this.grd_list.setitemtextex(row_index, 7, objScreenLoadInfo.time_js, false); this.grd_list.setitemtextex(row_index, 8, objScreenLoadInfo.time_ui, false); this.grd_list.setitemtextex(row_index, 9, objScreenLoadInfo.size_xml, false); this.grd_list.setitemtextex(row_index, 10, objScreenLoadInfo.size_js, false); this.grd_list.setitemtextex(row_index, 11, objScreenLoadInfo.size_component, false); this.grd_list.refresh(); } // 화면 로드 로깅 여부 체크박스 클릭 function chk_loadlog_on_click(objInst) { // 화면 로딩 로그 정보 기록 여부 설정 factory.setscreenloadlog(this.chk_loadlog.getcheck()); } // 체크행 삭제 버튼 이벤트 처리 function btn_delete_check_on_mouseup(objInst) { // 그리드의 체크된 행 삭제 this.grd_list.deletecheckedrow(); } // 전체 삭제 버튼 이벤트 처리 function btn_delete_all_on_mouseup(objInst) { // 그리드의 전체 행 삭제 this.grd_list.deleteall(); } // 닫기 버튼 이벤트 처리 function btn_close_on_mouseup(objInst) { screen.unload(); }