====== 화면 로드 로깅 가이드 ======
===== 예시 =====
템플릿 위치: /STUDIO/SCRIPT/screen_loadlog
템플릿 파일
* [[xf5projecthome>template/screen/STUDIO/SCRIPT/screen_loadlog.xml|screen_loadlog.xml]]
* [[xf5projecthome>template/screen/STUDIO/SCRIPT/screen_loadlog.js|screen_loadlog.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/STUDIO/SCRIPT/screen_loadlog|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
/**
* 가정 사항
* 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();
}