336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

html 본문을 수정했음에도 js 및 css 파일이 갱신되지않아 브라우저에서 변경되어진 정보가 제대로 표현되지 않을때가 있다.

브라우저의 캐싱은 url 기준으로 동일한 url 이 요청되어졌는지를 확인합니다.

캐시를 사용하는 목적은 빠른 화면 처리속도를 높일 수 있다.
하지만 수정된 내용이 반영되지 않은 화면이라면 이야기가 달라진다.

캐시를 사용하지 않기위해 다음과 같이 처리한다.

1. 메타테그
cache-control
no-cache : 캐시를 사용하기전에 재검증을 위한 요청을 강제한다.
no-store : 클라이언트의 요청, 서버의 응답등을 일제 저장하지 않는다.
must-revalidate : 캐시를 사용하기전에 반드시 만료된 것인지를 검증한다.

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" >

2. expires
리소스가 validate 하지 않다고 판단할 시간을 설정함
유효하지 않은 날짜 포맷과 같은경우 리소스가 만료되었음을 의미한다.

<meta http-equiv="expires" content="0">

3. HTTP 1.0버전에서 HTTP 1.1의 cache-control 헤더와 같은 기능을 함

<meta http-equiv="pragma" content="no-cache">

4. 수정한 파일의 이름을 변경한다.

temp.js 를 수정했다면 temp2.js 이렇게 수정한다.
(html 해당 js 의 link 정보도 수정)

이 방법은 파일명을 수정시마다 바꿔야하므로 귀찮고도 번거롭다.

수정한 파일의 링크정보에 쿼리스트링을 붙인다.

as-is
<script type="text/javascript" src="temp.js">
<link rel="stylesheet" type="text/css" href="temp.css">

to-be
<script type="text/javascript" src="temp.js?ver=1.0">
<link rel="stylesheet" type="text/css" href="temp.css?ver=1.0">

만약 jstl을 사용한다면
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formateDate value="${now}" pattern="yyyyMMddHHmmss" var="nowss"/>

<script type="text/javascript" src="temp.js?ver=${nowss}">
<link rel="stylesheet" type="text/css" href="temp.css?ver=${nowss}">

'Programming > javascript' 카테고리의 다른 글

javascript substring  (0) 2017.11.04
javascript v8 엔진  (0) 2017.04.26

+ Recent posts