-
[MVC] Controller - View : Cookie로 작업 종료 알림Framework/Spring 2019. 3. 29. 11:51
View 에서 작업을 실행시키고 종료에 따른 이벤트를 구현할 때는 보통 ajax를 이용했다.
하지만 Controller로 background 작업을 할 때 작업 종료 알림을 받아야 하는 경우가 있다.
(Excel 파일 생성 완료 후 알림)
View에서는 Cookie를 생성하고 주기적으로 Cookie를 검사하여 값이 바뀌면 작업을 종료한다.
Controller에서 작업이 끝나면 Cookie의 값을 바꿔 return 해준다.
- 이를 이용해 File Download 중 loading bar나 progress bar 구현이 가능하다.
//view.jsp
/** javascript 함수 호출 부분**/ setCookie("fileDownloadToken","false"); //Cookie 생성 checkDownloadCheck();// Cookie Token 값 체크 /** javascript 함수 **/ function setCookie(c_name,value){ var exdate=new Date(); var c_value=escape(value); document.cookie=c_name + "=" + c_value + "; path=/"; } //일정 주기마다 Cookie Token 값 체크 function checkDownloadCheck(){ FILEDOWNLOAD_INTERVAL = setInterval(function() { if (document.cookie.indexOf("fileDownloadToken=true") != -1) { $.cookie('fileDownloadToken', null, { expires : 0, path : location.pathname }); clearInterval(FILEDOWNLOAD_INTERVAL); //작업 종료 시 이벤트 } }, 500); }
//Controller
CookieGenerator cg = new CookieGenerator(); cg.setCookieName("fileDownloadToken"); cg.setCookiePath("/"); cg.addCookie(response, "true"); // 값 변경
'Framework > Spring' 카테고리의 다른 글
[Springboot/BeanUtils] @Autowired null 문제 해결 (ApplicationContext로 Bean 주입) (0) 2019.05.24 [Quartz] SpringBoot 에서 동적으로 properties 파일 읽어 Cron 설정 변경 (0) 2019.05.21 댓글