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
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

substring은 문자열을 자르는 함수입니다. 



- 문법 -

string.substring( 자르기 시작위치, 자르기 종료위치 )

자르기 시작위치 와 자르기 종료위치로 문자열에서 잘라낼 부분의 처음과 끝을 지정합니다.



- 예제 -

var str = 'ABCDEFG';

alert( str.substring( 1, 4 ) );

BCD 가 보일것입니다.

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

[html] js, css 파일 캐시 방지  (0) 2021.11.12
javascript v8 엔진  (0) 2017.04.26
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

일반적으로 javascript 용어는 웹페이지를 개발할때 사용하는 언어라는 인식이 대부분이다.

그렇지만 구글이(google) 크롬(Chrome)에 이식한 V8 이라는 javascript 를 이식하며 관심이 더 많아졌다.

위키디피아 백과사전 에서는 다음과 같이 설명하고 있다.


V8 자바스크립트 엔진(V8 JavaScript Engine)은 구글에서 개발된 오픈 소스 JIT 가상 머신형식의 자바스크립트 엔진이며 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있다. V8로 줄여 불리기도 하며, 현재 라스 백이 책임 프로그래머이다. ECMAScript(ECMA - 262) 3rd Edition 규격의 C++로 작성되었으며, 독립적으로 실행이 가능하다. 또한 C++로 작성된 응용 프로그램의 일부로 작동할 수 있다.

V8은 자바스크립트를 바이트코드(bytecode)로 컴파일하거나 인터프리트(interpret)하는 대신 실행하기 전 직접적인 기계어(x86, ARM, 또는 MIPS)로 컴파일(compile)하여 성능을 향상시켰다. 추가적인 속도향상을 위해 인라인 캐싱(inline caching)과 같은 최적화 기법을 적용하였다.


구글 개발사이트에는 다음과 같이 설명을 하고 있다.

V8 is Google's open source high-performance JavaScript engine, written in C++ and used in Google Chrome, the open source browser from Google. It implements ECMAScript as specified in ECMA-262, and runs on Windows XP or later, Mac OS X 10.5+, and Linux systems that use IA-32, ARM or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.

V8은 C ++로 작성되었으며 Google의 오픈 소스 브라우저 인 Google 크롬에 사용되는 Google의 오픈 소스 고성능 JavaScript 엔진입니다. ECMA-262에 명시된대로 ECMAScript를 구현하며 Windows XP 이상, Mac OS X 10.5 이상 및 IA-32, ARM 또는 MIPS 프로세서를 사용하는 Linux 시스템에서 실행됩니다. V8은 독립형으로 실행되거나 모든 C ++ 응용 프로그램에 내장 될 수 있습니다.


V8 compiles and executes JavaScript source code, handles memory allocation for objects, and garbage collects objects it no longer needs. V8's stop-the-world, generational, accurate garbage collector is one of the keys to V8's performance. You can learn about this and other performance aspects in V8 Design Elements.

V8은 자바 스크립트 소스 코드를 컴파일 및 실행하고 객체에 대한 메모리 할당을 처리하며 더 이상 필요없는 객체를 가비지 수집합니다. V8의 세계에서 멈추고 세대 간 정확한 가비지 컬렉터는 V8의 성능을 좌우하는 열쇠 중 하나입니다. V8 디자인 요소 에서이 기능 및 기타 성능 측면에 대해 배울 수 있습니다 .


JavaScript is most commonly used for client-side scripting in a browser, being used to manipulate Document Object Model (DOM) objects for example. The DOM is not, however, typically provided by the JavaScript engine but instead by a browser. The same is true of V8—Google Chrome provides the DOM. V8 does however provide all the data types, operators, objects and functions specified in the ECMA standard.

JavaScript는 브라우저에서 클라이언트 측 스크립팅에 가장 일반적으로 사용되며 예를 들어 DOM (Document Object Model) 객체를 조작하는 데 사용됩니다. 그러나 DOM은 일반적으로 자바 스크립트 엔진에 의해 제공되는 것이 아니라 브라우저에 의해 제공됩니다. V8에 대해서도 마찬가지입니다. Google 크롬은 DOM을 제공합니다. 그러나 V8은 ECMA 표준에 지정된 모든 데이터 유형, 연산자, 객체 및 기능을 제공합니다.


V8 enables any C++ application to expose its own objects and functions to JavaScript code. It's up to you to decide on the objects and functions you would like to expose to JavaScript. There are many examples of applications that do this, for example: Adobe Flash and the Dashboard Widgets in Apple's Mac OS X and Yahoo! Widgets.

V8을 사용하면 모든 C ++ 응용 프로그램이 자체 객체와 함수를 JavaScript 코드에 표시 할 수 있습니다. 자바 스크립트에 표시하려는 객체와 함수는 사용자가 결정해야합니다. 이를 수행하는 애플리케이션의 예가 많이 있습니다 (예 : Adobe Flash 및 Apple Mac OS X 및 Yahoo! 위젯의 대시 보드 위젯).


개발자의 경우 javascript 와 크롬이 사용하는 javascript 엔진에 대해서 조금은 알아야하지 않을까 합니다.


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

[html] js, css 파일 캐시 방지  (0) 2021.11.12
javascript substring  (0) 2017.11.04

+ Recent posts