ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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"); // 값 변경
    

    댓글

Copyright 2019. 콩이볼 All rights reserved.