페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.


브라우저 CACHE 삭제 알림 Alert 기능

Start Release No : 7.0.400.20230713-01 / Update Release No :

프로젝트명 :  (BCRM#D1924) AUD client 소스 변경 시, 브라우저 cache 삭제 알림 창 표시기술연구소

작성자 :  김진건          / 검수자 : 


기능 정보
  •  API Open
  •  UI Open
  •  Read Only
  •  Not Use
  •  Hidden
  •  Not Recommend


도움말
iconfalse
title기능 설명


  1. 실행 경로 : ( ※ 로컬에서 확인하고자 할 때 : 빌드→ gulp 작업 필수) /AUD/main.jsp 접속 시 확인

    개발 의도 : 제품 업데이트 시 캐시로 인하여 jsp/js 파일에 업데이트가 적용이 안된 경우 사용자에게 업데이트(캐시 삭제) 알림을 주기 위함

  2. 간략한 흐름
    1. 빌드 시 버전 코드 생성
    2. AUD폴더 내 버전 코드가 입력된 js 파일과 텍스트 파일 생성
      Image Added
    3. jsp파일에서 두 버전 코드를 비교하여 업데이트(캐시 삭제)알림 출력 여부 결정


  3. 사용 방법 : 전제조건 - 캐시 사용

  4. (로컬에서 테스트 시) gulp 작업 수행
    Image Removed
  5. (로컬에서 테스트 시) 빌드 된 파일 로컬 서버 폴더로 복사
  6. 참고사항
    title제약 사항
    • 캐시 사용 중인 상태에서만 확인 할 수 있음

    (로컬에서 테스트 시) 터미널에서 npm run all 로 빌드
    Image Removed

    • Viewer 에서만 버전을 체크함
    1. /AUD/main.jsp 접속
      1. 제품 업데이트 하기 전의 경우
        버전코드 값이 같아서 Alert창 출력 x

      2. 캐시가 쌓여 있고, 제품 업데이트 한 경우
        AUD.LIB_BUILD_VERSION : min.js 파일(bimatrix.module.audframework.js)빌드된 js파일에서 유래한 버전 코드 / 캐시를 사용한다면 이전 버전 코드일 것
        AUD_LIB_SERVER_VERSION : 텍스트 파일 (aud-lib-version.txt)에서 파일에서 유래한 버전 코드 / 항상 최신 코드 적용됨


        버전코드 값이 달라서 Alert창 출력 o

        Image Modified
    소스 설명
  7. 개발의도 : 제품 업데이트 시, 텍스트 파일과 min.js 파일(bimatrix.module.audframework.js)에 같은 버전 코드(임의로 정한 값)를 부여하여 min.js 파일을 cached된 것을 사용하고 있다면 텍스트 파일에 적힌 코드와 다른 것을 이용하여 사용자에게 업데이트(캐시 삭제)를 유도하는 메세지를 출력하기 위함
  8. 간략한 흐름
  9. npm run all으로 빌드하면서 버전코드 생성 ( 타임스탬프 이용하여 생성 : "LIB_VERSION_yyyyMMddHHmm")
  10. 버전 코드만 입력된 aud-lib-version.txt 생성 : 빌드 할 때마다 새롭게 바뀜
  11. AUD.js에서 치환을 통해 버전코드 입력 : 서버에 올라갈 bimatrix.module.audframework.js 내 코드로 존재 (캐시)
  12. jsp파일에서 aud-lib-version.txt와 bimatrix.module.audframework.js 내 버전 코드 값 비교하여 Alert 메세지 출력 여부 결정
  13. AUD.ts(기존과 비교) : LIB_BUILD_VERSION 추가

    코드 블럭
    languagejava
    themeFadeToGrey
    firstline141
    titleAUD.ts
    linenumberstrue
    collapsetrue
        .
    	.
    	.
    	public static META_TEMPLATE_NAME = "TEMPLATE_SD_META_VIEW";
    
    
        // JSP CACHE 작업 -- 추가된 코드
        public static LIB_BUILD_VERSION = "__LIB__BUILD__VERSION__OF__AUD__";
    
        // PropertyGrid 객체
        private static mPropertyGrid: PropertyGrid;
        public static get PropertyGrid(): PropertyGrid {
            return this.mPropertyGrid;
        }
    	.
    	.
    	.

    ** __LIB__BUILD__VERSION__OF__AUD : 빌드 시 생성될 버전 코드와 치환될 문자열

  14. buildversion.bat(신규 파일) : 버전 코드를 생성하여 텍스트 파일을 만들고 AUD.js에서 대상 문자열 치환 작업 수행하는 배치파일

    코드 블럭
    languagebash
    themeFadeToGrey
    firstline1
    titlebuildversion.bat
    linenumberstrue
    collapsetrue
    @echo off
    
    REM Timestamp 설정
    FOR /F %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a
    SET TIMESTAMP=LIB_VERSION_%DTS:~0,8%%DTS:~8,4%
    
    REM 라이브러리버전 파일 생성
    ECHO %TIMESTAMP% > ..\3.ExternalFiles\reports\aud-lib-version.txt
    
    REM AUD 문자열 replace
    SET file_path=.\out\model\AUD.js
    SET OLD_STRING="__LIB__BUILD__VERSION__OF__AUD__"
    
    powershell -Command "(Get-Content '%file_path%') -replace '%OLD_STRING%', '%TIMESTAMP%' | Set-Content '%file_path%'"

    위치 : 소스 (aud-web-framework 폴더) 내 위치

    package.json(기존과 비교) : "buildver" 이라는 key 추가 ( value는 buildversion.bat의 상대경로 ) 및 "all"의 value에 "buildver" 추가

    코드 블럭
    languageactionscript3
    themeFadeToGrey
    firstline1
    titlepackage.json
    linenumberstrue
    collapsetrue
      "scripts": {
    	.
    	.
    	.
        "buildver": "..\\buildversion.bat",
        "all": "tsc && npm run del_all && npm run buildver && npm run webpack_release && npm run webpack_debug && npm run webpack_comprelease && npm run webpack_compdebug"
      },

    ** "all" 내 "buildver" 순서 배치 의도 : min.js 파일로 빌드 하기 전에 AUD.js 파일에 미리 치환하여 release와 debug에 모두 코드를 포함시키기 위함

    main.jsp(기존과 비교) : 텍스트 파일을 읽어와서 jsp 내 전역변수로 사용 및 텍스트 파일 유래 버전 코드와 min.js 유래 버전코드 비교 작업 추가

    코드 블럭
    languagexml
    themeFadeToGrey
    firstline1
    titlemain.jsp
    linenumberstrue
    collapsetrue
    .
    .
    .
    <%@ page import="com.matrix.Data.io.TextFileHelper" %>
    <%
        .
    	.
    	.
        String aud_lib_server_version = TextFileHelper.ReadAllText("aud-lib-version.txt").trim();
    %>
    .
    .
    .
    <script type="text/javascript">
      var AUD_LIB_SERVER_VERSION = "<%=aud_lib_server_version%>"; // 텍스트 파일에서 유래한 버전코드
    .
    .
    .
      var ShowAlertOfUpdate = function () {
    		if(typeof AUD.LIB_BUILD_VERSION === "undefined"){
        		alert(AUD.Trans("EXE0051"));
           		return;
        	}else if(AUD.LIB_BUILD_VERSION !== AUD_LIB_SERVER_VERSION){ // AUD_LIB_SERVER_VERSION = min.js 파일(bimatrix.module.audframework.js)에서 유래한 버전코드 ( 캐시를 사용하고 있다면 코드가 이전 코드일 것 )
           		alert(AUD.Trans("EXE0051"));
        	}
        }
    .
    .
    .

    iStudio-ko(및 다른 Locale 코드).json (기존과 비교)

    코드 블럭
    languageyml
    themeFadeToGrey
    firstline1
    titleiStudio-ko.json
    linenumberstrue
    collapsetrue
    .
    .
    .  
      "EXE0050": "Format을 사용하려면 [연결]항목을 설정해야 합니다.",  
      "EXE0051": "제품 업데이트가 필요합니다.\n브라우저 캐시를 삭제해주세요.", <- 코드에 출력 될 메세지 작성
    .
    .
    .
  15. aud-lib-version.txt(신규 파일) : 버전 코드가 입력된 텍스트 파일
    Image Removed위치 : reports 폴더 내 존재




참고사항
title참고 자료


펼치기

첨부 파일



정보
title문서 수정 이력
변경 이력

하위 페이지 표시
alltrue



정보
titleBCRM 정보

(BCRM#D1924) AUD client 소스 변경 시, 브라우저 cache 삭제 알림 창 표시


...


...