HTML5 애플리케이션 캐싱



HTML5를 사용하면 캐시 매니페스트 파일을 만들어 웹 애플리케이션의 오프라인 버전을 쉽게 만들 수 있습니다.


애플리케이션 캐시란 무엇인가요?

HTML5에는 인터넷 연결 없이 웹 애플리케이션을 캐시하고 액세스할 수 있는 애플리케이션 캐싱이 도입되었습니다.

애플리케이션 캐시는 앱에 세 가지 이점을 제공합니다.

  1. 오프라인 검색 - 사용자는 앱이 오프라인일 때 사용할 수 있습니다.

  2. 속도 - 캐시된 리소스가 더 빠르게 로드됩니다.

  3. 서버 로드 감소 - 브라우저는 서버에서 업데이트되거나 변경된 리소스만 다운로드합니다.


브라우저 지원

Internet Explorer

Internet Explorer 10, Firefox, Chrome, Safari 및 Opera는 애플리케이션 캐싱을 지원합니다.


HTML5 캐시 매니페스트 예

다음 예는 캐시 매니페스트가 있는 HTML 문서(오프라인 검색용)를 보여줍니다.

<!DOCTYPE html>
<html manifest="demo_html.appcache">
<head> 
<meta charset="UTF-8">
<title>php中文网(php.cn)</title> 
</head>
<body>
<script src="demo_time.js">
</script>
<p id="timePara"><button onclick="getDateTime()">获取日期和时间</button></p>
<p><img src="logo.png" width="336" height="69"></p>
<p>尝试打开 <a href="#" target="_blank">这个页面</a>, 在离线的状态下重新载入这个页面,页面也可以访问。</p>
</body>
</html>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요.


캐시 매니페스트 기본 사항

애플리케이션 캐싱을 활성화하려면 문서의 <html> 태그에 매니페스트 속성을 포함하세요.

<!DOCTYPE HTML>
<html 매니페스트="demo.appcache">
...
</html>

지정된 매니페스트가 있는 각 페이지는 사용자가 액세스할 때 캐시됩니다. 매니페스트 속성이 지정되지 않으면 페이지가 캐시되지 않습니다(매니페스트 파일에 직접 지정되지 않는 한).

매니페스트 파일의 권장 파일 확장자는 ".appcache"입니다.

매니페스트 파일은 올바른 MIME 유형인 "text/cache-manifest"로 구성되어야 합니다. 웹 서버에서 구성해야 합니다.


매니페스트 파일

매니페스트 파일은 브라우저에 캐시된 것과 캐시되지 않은 것을 알려주는 간단한 텍스트 파일입니다.

매니페스트 파일은 세 가지 섹션으로 나눌 수 있습니다.

  • CACHE MANIFEST - 이 제목 아래에 나열된 파일은 첫 번째 다운로드 후 캐시됩니다.

  • NETWORK - 이 제목 아래에 나열된 파일은 서버에 연결해야 하며 캐시되지 않습니다.

  • FALLBACK - 이 제목 아래 나열된 파일은 페이지에 액세스할 수 없는 경우(예: 404 페이지) 대체 페이지를 지정합니다.

CACHE MANIFEST

첫 번째 줄, 캐시 매니페스트 필수:

캐시 매니페스트
/theme.css
/logo.gif
/main.js

위 매니페스트 파일에는 CSS 파일, GIF 이미지, JavaScript 파일이라는 세 가지 리소스가 나열되어 있습니다. 매니페스트 파일이 로드되면 브라우저는 웹 사이트의 루트 디렉터리에서 이 세 파일을 다운로드합니다. 그러면 사용자가 인터넷 연결을 끊을 때마다 이러한 리소스를 계속 사용할 수 있습니다.

NETWORK

다음 NETWORK 섹션에서는 "login.php" 파일이 캐시되지 않으며 오프라인에서 사용할 수 없도록 지정합니다.

NETWORK:
login.php

별표는 다른 모든 리소스/파일에 인터넷 연결이 필요함을 나타내는 데 사용할 수 있습니다:

네트워크:
*

FALLBACK

다음 FALLBACK 하위 섹션에서는 인터넷 연결을 설정할 수 없는 경우 /html5/ 디렉터리의 모든 파일이 "offline.html"로 대체됨을 지정합니다.

폴백:
/html/ /offline.html

참고: 첫 번째 URI는 리소스이고 두 번째 URI는 대체입니다.


캐시 업데이트

앱이 캐시되면 다음 때까지 캐시된 상태로 유지됩니다.

  • 사용자가 브라우저 캐시를 지울 때

  • 매니페스트 파일이 수정되었습니다(아래 팁 참조)

  • 프로그램에 의해 애플리케이션 캐시가 업데이트됩니다

예 - 전체 매니페스트 파일

캐시 매니페스트
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js

네트워크:
login.php

폴백:
/html/ /offline.html

Remark팁: "#"으로 시작하는 줄은 주석 줄이지만 다른 용도로도 사용할 수 있습니다. 매니페스트 파일이 변경되면 애플리케이션 캐시가 업데이트됩니다. 이미지를 편집하거나 JavaScript 기능을 수정하는 경우 이러한 변경 사항은 다시 캐시되지 않습니다. 주석 줄에서 날짜와 버전 번호를 업데이트하면 브라우저가 파일을 다시 캐시하게 됩니다.


애플리케이션 캐싱 주의사항

캐시 내용에 주의해주세요.

파일이 캐시되면 서버에서 파일을 수정하더라도 브라우저는 캐시된 버전을 계속 표시합니다. 브라우저가 캐시를 업데이트하도록 하려면 매니페스트 파일을 업데이트해야 합니다.

참고: 브라우저마다 캐시된 데이터의 용량 제한이 다를 수 있습니다(일부 브라우저는 사이트당 5MB의 제한을 설정합니다).