네트워크를 효율적으로 사용하기 위해 개발된 앱을 배포서버에서 매번 내려받지 않고 캐시 기술을 사용합니다.
캐시의 종류
지원하는 캐시의 종류는 아래와 같습니다.
CacheLevel | 설명 |
---|---|
none | 캐시 기능을 사용하지 않습니다. |
dynamic | 서버에서 파일이 업데이트된 경우에만 파일을 다시 받습니다. 서버에서 파일이 갱신되지 않으면 로컬 캐시 파일을 재사용합니다. |
session | 앱 실행 시 서버에서 파일을 받고 앱을 종료할 때까지 로컬 캐시 파일만 사용합니다. (앱 실행 시 서버에 있는 파일이 로컬 캐시 파일과 같을 경우 해당 파일을 재사용합니다). |
static | 서버에서 한 번 내려받은 파일은 앱을 다시 실행하더라도 로컬 캐시 파일만 사용합니다. (단, Type Definition에 지정된 서비스 그룹의 Version 정보가 변경된 경우에는 파일을 다시 받습니다). |
WRE 실행 시 참고사항
속성값이 static이면 캐시 파일을 로컬저장소에 저장하게 되는데 웹브라우져의 기능 제약으로 로컬저장소를 사용하지 못합니다. 그래서 웹브라우저에서 사용하는 경우에는 속성값이 static인 경우에도 session으로 동작합니다.
웹브라우저를 새로 실행하거나 새로고침하는 경우에는 제품에서 관리하는 메모리상의 캐시가 모두 제거되기 때문에 속성값을 session, dynamic, static으로 설정한 경우 설정한 값과 무관하게 브라우저 동작에 의존하게 됩니다.
웹브라우저에서 사용하는 경우에는 속성값이 none이면 브라우저에서 캐시를 사용하지 않는 것이 정상입니다. Firefox를 사용하는 경우에는 브라우저 캐시를 사용하는 증상이 있는데 이 증상은 Firefox 버그입니다.
MS 인터넷 익스플로러에서 실행되는 경우 넥사크로 내부에서 이용하는 캐시메모리보다 인터넷 익스플로러의 캐시가 우선 동작하는 경우가 있습니다. 웹브라우저 캐시옵션이 "자동으로 확인(default)"일 때 서버에서 변경된 자바스크립트 파일(*.js)이 갱신되지 않는 현상은 제약사항입니다.
넥사크로 스튜디오에서 실행 시 참고사항
넥사크로 스튜디오에서 [Launch Project] 또는 [Quick View] 메뉴를 사용해 NRE를 실행하는 경우에는 typedefinition에 설정된 Service-cachelevel 값을 무시하고 none으로 동작합니다.
(cachelevel 속성의 설정값이 변경되는 것은 아닙니다).
컴포넌트, 오브젝트에 따라 cachelevel이 다르게 적용되는 사항
넥사크로에서 이미지를 처리할 때는 이미지 표현 관련 기능(size, stretch 등)과 성능상의 이유로 사용 브라우저의 캐시 설정에 따른 동작을 하도록 설계됐습니다.
(프로젝트 service 그룹에 설정된 cachelevel과는 별개의 동작입니다).
ExcelImportObject 또는 ExcelExportObject를 사용해 엑셀 파일을 가져오거나 내보낼 때에는 지정한 cachelevel 속성값과 관계없이 무조건 none으로 동작합니다.
캐시 적용 방법
다음은 Type Definition 편집기에 대한 설명입니다.
캐시는 등록된 서비스 그룹에만 적용됩니다.
"./Base/' 폴더 아래 등록된 모든 파일에 대해 캐시가 적용됩니다.
캐시의 종류를 선택합니다.
서비스 버전을 설정하면 Static 상태에서 파일을 다시 내려받을 수 있습니다.
nexacro.getEnvironment().services["Base"].set_cachelevel("none" )