페이지 트리

버전 비교

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


브라우저 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 접속 시 확인

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

    참고사항
    title제약 사항
    • 캐시 사용 중인 상태에서만 확인 할 수 있음

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

    1. (로컬에서 테스트 시) gulp 작업 수행
      Image Removed
    2. (로컬에서 테스트 시) 빌드 된 파일 로컬 서버 폴더로 복사
    3. /AUD/main.jsp 접속
      1. 제품 업데이트 하기 전의 경우
        버전코드 값이 같아서 Alert창 출력 x

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


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

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

    3. 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 : 빌드 시 생성될 버전 코드와 치환될 문자열

    4. 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 폴더) 내 위치


    5. 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에 모두 코드를 포함시키기 위함


    6. 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"));
          	}
          }
      .
      .
      .


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

      코드 블럭
      languageyml
      themeFadeToGrey
      firstline1
      titleiStudio-ko.json
      linenumberstrue
      collapsetrue
      .
      .
      .  
        "EXE0050": "Format을 사용하려면 [연결]항목을 설정해야 합니다.",  
        "EXE0051": "제품 업데이트가 필요합니다.\n브라우저 캐시를 삭제해주세요.", <- 코드에 출력 될 메세지 작성
      .
      .
      .


    8. aud-lib-version.txt(신규 파일) : 버전 코드가 입력된 텍스트 파일

      위치 : reports 폴더 내 존재



참고사항
title참고 자료


펼치기

첨부 파일



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

하위 페이지 표시
alltrue



정보
titleBCRM 정보

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


...


...