HTML5 애플리케이션 캐싱
HTML5 애플리케이션 캐시
애플리케이션 캐시애플리케이션 캐시
HTML5는 웹 애플리케이션을 의미하는 애플리케이션 캐싱 기술을 도입했습니다. 네트워크 없이도 사용할 수 있습니다. 캐시 매니페스트 파일을 생성하면 오프라인 애플리케이션을 쉽게 생성할 수 있습니다.
애플리케이션 캐시가 가져오는 세 가지 장점은 다음과 같습니다.
① 오프라인 탐색
② 페이지 로딩 속도 향상
③ 서버 부담 감소
그리고 모든 주요 브라우저는 애플리케이션 캐시를 지원하며, 지원하지 않더라도 프로그램에는 아무런 영향을 미치지 않습니다.
오프라인 저장 기술
HTML5는 두 가지 주요 오프라인 저장 기술인 localstorage를 제안합니다. 및 애플리케이션 캐시에는 둘 다 고유한 애플리케이션 시나리오가 있습니다. 전통적인 오프라인 저장 기술은 쿠키입니다.
실습 후에 우리는 localstorage가 중요하지 않은 Ajax 데이터를 저장해야 한다고 믿습니다.
애플리케이션 캐시는 정적 리소스를 저장하는 데 사용됩니다.
쿠키는 작은 텍스트 조각(4096바이트)만 저장할 수 있으므로 큰 데이터를 저장할 수 없습니다. 이것이 쿠키와 위의 캐싱 기술의 차이점 중 하나입니다. , 서버는 요청이 동일한 서버에서 발생하는지 구별해야 하며, 이 작업은 쿠키에 의해 완료됩니다. 이 텍스트는 사용자의 권한을 확인하기 위해 매번 서버와 브라우저 간에 전달됩니다.
그래서 Application Cache의 적용 시나리오가 다르기 때문에 사용법이 일관되지 않습니다.
애플리케이션 캐시 소개
애플리케이션 캐시를 사용하려면 두 가지 작업 측면이 필요합니다.
① 서버는 매니페스트 목록을 유지해야 합니다.
② 브라우저 간단한 설정만 하면 됩니다
<html 매니페스트="demo.appcache">
예를 포함한 그림:
CACHE MANIFEST CACHE: # 需要缓存的列表 style1.css 1.jpg 01.js http://localhost/applicationcache/02.js http://localhost/applicationcache/zepto.js NETWORK: # 不需要缓存的 4.jpg FALLBACK: # 访问缓存失败后,备用访问的资源,第一个是访问源,第二个是替换文件*.html /offline.html 2.jpg/3.jpg
첫 번째 모두 여기에 오류가 보고되었습니다:
응용 프로그램 캐시 오류 이벤트: 매니페스트 가져오기 실패(404)
이 오류의 이유는 다음과 같습니다. 매니페스트 파일을 다음으로 구성해야 합니다. 올바른 MIME 유형, 즉 "text /cache-manifest"입니다. 웹 서버에서 구성해야 하며, 서버마다 다릅니다
\APPLICATIONCACHE 01.js 02.js 1.jpg 2.jpg 3.jpg 4.jpg demo.appcache index.html style1.css style2.css web.config zepto.js
이렇게 하면 이때 네트워크 연결이 끊어져도 해당 파일에 계속 액세스할 수 있습니다
여기에 한 가지가 있습니다. /index.html이 여기에 포함되지 않으면 "applicationcache/"가 캐시됩니다. 실제로 이것은 index.html입니다.
매니페스트 파일은 세 부분으로 나눌 수 있습니다.
캐시 매니페스트 - 이 제목 아래에 나열된 파일은 첫 번째 다운로드 후 캐시됩니다.
NETWORK - 이 제목 아래에 나열된 파일은 서버에 연결해야 하며 캐시되지 않습니다. 캐시됨
FALLBACK - 이 제목 아래 나열된 파일은 페이지에 액세스할 수 없는 경우(예: 404 페이지) 대체 페이지를 지정합니다.
캐시 매니페스트 기본 사항
애플리케이션 캐싱을 활성화하려면 문서의 <html> 태그에 매니페스트 속성을 포함하세요.
<!DOCTYPE HTML> <html manifest="demo.appcache"> ... </html>
매니페스트를 지정하는 각 페이지는 사용자 페이지에 표시됩니다. 액세스할 때 캐시됩니다. 매니페스트 속성이 지정되지 않으면 페이지가 캐시되지 않습니다(매니페스트 파일에 직접 지정되지 않는 한).
매니페스트 파일의 권장 파일 확장자는 ".appcache"입니다.
매니페스트 파일은 올바른 MIME 유형, 즉 "text/cache-manifest"로 구성되어야 합니다. 웹 서버에서 구성해야 합니다.
매니페스트 파일
매니페스트 파일은 브라우저에 캐시된 것과 캐시되지 않은 것을 알려주는 간단한 텍스트 파일입니다.
매니페스트 파일은 세 부분으로 나눌 수 있습니다.
캐시 매니페스트 - 이 제목 아래에 나열된 파일은 첫 번째 다운로드 후 캐시됩니다.
네트워크 - 이 제목 아래에 보내는 파일이 필요합니다. 서버에 대한 연결이며 캐시되지 않습니다.
FALLBACK - 이 제목 아래 나열된 파일은 페이지에 액세스할 수 없을 때(예: 404 페이지)
CACHE MANIFEST
첫 번째 줄인 CACHE MANIFEST는 필수입니다:
CACHE MANIFEST
/theme.css
/logo.gif
/main.js
위의 매니페스트 파일에는 CSS 파일, GIF 이미지, JavaScript 파일이라는 세 가지 리소스가 나열되어 있습니다. 매니페스트 파일이 로드되면 브라우저는 웹 사이트의 루트 디렉터리에서 이 세 파일을 다운로드합니다. 그러면 사용자가 인터넷 연결을 끊을 때마다 이러한 리소스를 계속 사용할 수 있습니다.
NETWORK
다음 NETWORK 섹션에서는 "login.php" 파일이 캐시되지 않으며 오프라인에서 사용할 수 없도록 지정합니다.
NETWORK:
login .php
별표는 다른 모든 리소스/파일에 인터넷 연결이 필요함을 나타내는 데 사용할 수 있습니다.
NETWORK:
*
FALLBACK
다음 FALLBACK 섹션은 인터넷 연결을 설정할 수 없는 경우 /html5/ 디렉토리의 모든 파일이 "offline.html"로 대체되도록 지정합니다.
FALLBACK:
/html/ /offline.html
참고: 첫 번째 URI는 리소스이고 두 번째 URI는 대체입니다.
캐시 업데이트
앱이 캐시되면 다음이 발생할 때까지 캐시된 상태로 유지됩니다.
사용자가 브라우저 캐시를 지웁니다
매니페스트 파일이 수정됩니다(참조: 아래 팁)
프로그래밍 방식으로 앱 캐시 업데이트
예 - 전체 매니페스트 파일
CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.php
FALLBACK:
/html/ /offline.html
팁: "#"으로 시작하는 줄은 주석입니다. 다른 목적으로도 사용할 수 있습니다. 매니페스트 파일이 변경되면 애플리케이션 캐시가 업데이트됩니다. 이미지를 편집하거나 JavaScript 기능을 수정하는 경우 이러한 변경 사항은 다시 캐시되지 않습니다. 주석 줄에서 날짜와 버전 번호를 업데이트하면 브라우저가 파일을 다시 캐시하게 됩니다.
애플리케이션 캐싱 관련 참고사항
캐시 내용에 주의하시기 바랍니다.
파일이 캐시되면 서버에서 파일을 수정하더라도 브라우저는 캐시된 버전을 계속 표시합니다. 브라우저가 캐시를 업데이트하도록 하려면 매니페스트 파일을 업데이트해야 합니다.
참고: 브라우저마다 캐시된 데이터에 대한 용량 제한이 다를 수 있습니다(일부 브라우저는 사이트당 5MB의 제한을 설정합니다).