====== 워커 기본 가이드 ====== 이 화면은 Worker 컴포넌트 기본 기능 샘플 화면이다. Worker 컴포넌트는 HTML5 Worker 기능을 제공하는 컴포넌트이다. Worker 컴포넌트에 생성한 워커 쓰레드가 실행할 화면의 스크립트에서는 UI 접근이 불가하다. 관련 API로 start, postmessage, terminate가 있다. 관련 이벤트로 on_message, on_error가 있다. ===== 예시 ===== 템플릿 위치: /HTML5/COMPONENT/WORKER/worker_basic 템플릿 파일 * [[xf5projecthome>template/screen/HTML5/COMPONENT/WORKER/worker_basic.xml|worker_basic.xml]] * [[xf5projecthome>template/screen/HTML5/COMPONENT/WORKER/worker_basic.js|worker_basic.js]] * [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/WORKER/worker_basic|새창으로 실행]] echo ''; echo ''; echo ''; ==== 화면 스크립트 ==== /** * 워커 컴포넌트 및 워커 쓰레드에서 오류가 발생한 경우에 이벤트가 발생한다. * @param objInst 워커 컴포넌트 인스턴스 * @param strError 오류 메시지 문자열 */ function wk_on_error(objInst, strError) { screen.alert("on_error> Start, strError = " + strError); } /** * 워커 컴포넌트의 start 함수를 통해서 실행된 워커 쓰레드가 * 실행하는 스크립트내에서 postMessage API가 호출된 경우에 이벤트가 발생한다. * @param objInst 워커 컴포넌트 인스턴스 * @param strMessage 워커 쓰레드가 송신한 데이터 문자열 */ function wk_on_message(objInst, strMessage) { // 일반 문자열이 아닌, 오브젝트 데이터 수신시에는 // factory.jsonparse API를 이용하여 // 문자열을 JSON 오브젝트로 변환하여 사용한다. this.fldRecvData.settext(strMessage); } // "워커 생성" 버튼 이벤트 function btnStart_on_mouseup(objInst) { // 워커 쓰레드가 실행될 화면 URL을 파라미터로 전달하여, 워커 쓰레드 시작 this.wk.start(this.fld_worker_url.gettext()); } // "워커 종료" 버튼 이벤트 function btnTerminate_on_mouseup(objInst) { // 워커 쓰레드 종료 this.wk.terminate(); } // "수신 메시지 초기화" 버튼 이벤트 function btnClear_on_mouseup(objInst) { this.fldRecvData.settext(""); } // "메시지 송신" 버튼 이벤트 function btnSend_on_mouseup(objInst) { var ret; // 일반 문자열이 아닌, 오브젝트 데이터를 송신하기 위해서는 // factory.jsonstringify API를 이용하여 // JSON 오브젝트를 문자열로 변환하여 송신해야 한다. ret = this.wk.postmessage(this.fldSendData.gettext()); if (ret == false) { screen.alert("워커 컴포넌트 postmessage fail"); } }