찾다
웹 프론트엔드H5 튜토리얼HTML5 오프라인 저장 지식에 대한 자세한 설명

STORAGE(저장소)

Cookie

HTML5 이전에는 로그인한 사용자 정보, 과거 검색 정보 등과 같은 일부 데이터를 브라우저 측에서 캐시하기 위해 쿠키를 사용했습니다. 하지만 쿠키가 지원하는 용량은 4K에 불과하고, 운영을 위한 전용 API가 없습니다. 일부 오픈 소스 라이브러리에만 의존할 수 있습니다. 여기서 Cookies.js는 쿠키 정보를 저장하고 얻는 데 사용됩니다

// 这是一个cookie值
Cookies.set('key', 'value');

// 链式调用
Cookies.set('key', 'value').set('hello', 'world');

// 可以额外设置一些参数
Cookies.set('key', 'value', { domain: 'www.example.com', secure: true });

// 设置缓存时间
Cookies.set('key', 'value', { expires: 600 }); // Expires in 10 minutes
Cookies.set('key', 'value', { expires: '01/01/2012' });
Cookies.set('key', 'value', { expires: new Date(2012, 0, 1) });
Cookies.set('key', 'value', { expires: Infinity });

// 获取
Cookies.get('key');

단점:

저장되는 데이터의 양이 상대적으로 적습니다.

이를 운영하기 위한 편리한 API가 없습니다.

http 요청 중에 쿠키 정보가 요청 헤더에 추가됩니다. 안전하지 않고 대역폭도 증가합니다.

WEB Storage

HTML5는 더 나은 로컬 저장소 사양인 localStorage 및 sessionStorage를 제공합니다. 이들은 데이터를 로컬에 저장하고 http 요청 중에 저장소에 정보를 전달하지 않습니다. 사용법도 매우 간단합니다.

localStorage.setItem('key', 'value');
localStorage.getItem('key');
localStorage.removeItem('key');

sessionStorage.setItem('key', 'value');
sessionStorage.getItem('key');
sessionStorage.removeItem('key');

sessionStorage의 사용법 및 특성. 및 localStorage는 기본적으로 동일합니다. 유일한 차이점은 sessionStorage는 세션 내에서만 유효하며, sessionStorage의 캐시된 데이터는 자동으로 지워지는 반면, localStorage는 그렇지 않은 한 영구적으로 로컬에 저장됩니다. 수동으로 지워졌습니다.

cookie, localStorage, sessionStorage의 차이점을 분석한 사진입니다

HTML5 오프라인 저장 지식에 대한 자세한 설명

OFFLINE (오프라인)

웹앱도 네이티브앱과 동일한 기능과 경험을 가질 수 있도록 HTML5에 추가하였습니다. 사양 많은 새로운 API를 사용하면 오프라인 환경에서도 페이지에 정상적으로 액세스할 수 있습니다. 서비스 워커와 indexedDB를 함께 사용하여 오프라인용 웹앱을 개발할 수 있습니다. 현재 서비스 워커의 호환성이 좋지 않기 때문에 여기서는 이전 솔루션 애플리케이션 캐시를 소개하겠습니다.

service Worker

Service Worker는 Web Worker를 기반으로 하는 이벤트 기반입니다. 실행 메커니즘은 이전에 직접 처리할 수 없었던 몇 가지 추가 작업을 처리하기 위해 새 스레드를 여는 것입니다. Web Worker의 경우 브라우저의 메인 스레드 렌더링을 차단하지 않기 때문에 복잡한 계산을 수행하는 데 사용할 수 있습니다. 서비스 워커의 경우 로컬 프록시와 동일한 로컬 캐싱에 사용할 수 있습니다. 캐싱에 대해 말하자면, 정적 리소스를 캐시하는 데 일반적으로 사용하는 캐싱 기술 중 일부를 생각해 보겠습니다. 하지만 이전 방법은 디버깅을 지원하지 않으며 그다지 유연하지 않습니다. 캐싱을 위해 Service Worker를 사용하면 자바스크립트 코드를 사용하여 브라우저의 http 요청을 가로채고, 캐시된 파일을 설정하고, 웹 서버를 통하지 않고 직접 반환한 다음, 원하는 작업을 더 많이 수행할 수 있습니다.

따라서 브라우저 기반 오프라인 애플리케이션을 개발할 수 있습니다. 이를 통해 웹 애플리케이션이 네트워크에 덜 의존하게 됩니다. 예를 들어, 뉴스 읽기 웹 애플리케이션을 개발했는데, 모바일 브라우저로 열고 네트워크가 있으면 정상적으로 뉴스 콘텐츠를 얻을 수 있습니다. 하지만 휴대폰이 비행기 모드로 전환되면 이 앱을 사용할 수 없습니다.

캐싱을 위해 서비스 워커를 사용하는 경우 브라우저 http 요청은 먼저 서비스 워커를 거쳐 URL 매핑을 통해 일치되며 일치가 실패하면 캐시된 데이터가 사용됩니다. 수행. 정상적인 상황에서 일치가 실패하면 페이지에 "웹 페이지를 열 수 없습니다."가 표시됩니다.

서비스 작업 수명 주기

HTML5 오프라인 저장 지식에 대한 자세한 설명

서비스 작업 데모

nbsp;html>

  
    <meta>
    <script>
        navigator.serviceWorker.register("/service-worker.js").then(function(serviceWorker) {
            console.log("success!");
        });
    </script>
  
  
  

이 js는 서비스 작업자가 페이지에 성공적으로 등록되면 호출됩니다

this.oninstall = function(e) {
    var resources = new Cache();
    var visited = new Cache();
    // Fetch them.
    e.waitUntil(resources.add(
        "/index.html",
        "/fallback.html",
        "/css/base.css",
        "/js/app.js",
        "/img/logo.png"
    ).then(function() {
        // Add caches to the global caches.
        return Promise.all([
            caches.set("v1", resources),
            caches.set("visited", visited)
        ]);
    }));
};

this.onfetch = function(e) {
    e.respondWith(
        // Check to see if request is found in cache
        caches.match(e.request).catch(function() {
            // It's not? Prime the cache and return the response.
            return caches.get("visited").then(function(visited) {
                return fetch(e.request).then(function(response) {
                    visited.put(e.request, response);
                    // Don't bother waiting, respond already.
                    return response;
                });
            });
        }).catch(function() {
            // Connection is down? Simply fallback to a pre-cached page.
            return caches.match("/fallback.html");
        });
    );
};

서비스 작업자는 이벤트 수신 메커니즘을 사용합니다. 위의 코드는 설치 및 가져오기 이벤트가 설치되면 이 메서드가 호출된 다음 페이지 가져오기 요청 이벤트가 사용됩니다. 사용자 요청에 요청한 파일이 캐시에 도달하면 캐시에서 파일을 가져와 페이지로 돌아가므로 오프라인 목적을 달성하기 위해 서버를 거칠 필요가 없습니다.

물론, 서비스 워커의 기능은 지금보다 훨씬 더 많습니다.

indexedDB

indexedDB는 데이터 쿼리 속도가 매우 빠르며 js 개체를 직접 저장할 수 있는 nosql 데이터베이스입니다. 인덱싱, 트랜잭션 처리, 강력한 쿼리 기능 등을 포함하여 웹 SQL(sqlite)보다 효율적입니다. indexedDB 기능:

1. 웹사이트에는 하나 이상의 IndexedDB 데이터베이스가 있을 수 있으며 각 데이터베이스에는 고유한 이름이 있어야 합니다.

2. 데이터베이스에는 하나 이상의 객체 저장소가 포함될 수 있습니다.

객체 저장소(이름으로 고유하게 식별됨)는 레코드 모음입니다. 각 레코드에는 키와 값이 있습니다. 값은 하나 이상의 속성을 가질 수 있는 개체입니다. 키는 키 생성기를 기반으로 하거나 키 경로에서 파생되거나 명시적으로 설정될 수 있습니다. 고유한 연속 양수를 자동으로 생성하는 키 생성기입니다. 키 경로는 키 값에 대한 경로를 정의합니다. 단일 JavaScript 식별자일 수도 있고 마침표로 구분된 여러 식별자일 수도 있습니다.

기본 사용법은 다음과 같습니다.

var openRequest = indexedDB.open("auto_people", 3);
var db; //数据库对象
openRequest.onupgradeneeded = function(e){
    console.log("Running onupgradeeded...");
	var thisDB = e.target.result;
	if(!thisDB.objectStoreNames.contains("people")){
			thisDB.createObjectStore("people", {autoIncrement:true}); //新建一个store并设置主键自增长
	}
}
//创建成功
openRequest.onsuccess = function(e){
    console.log("success!");
    db = e.target.result;
	//Listen for add clicks

}
openRequest.onerror = function(e){
	console.log("error!");
	console.dir(e);
}
//这应该站在别的地方处理,这是做一个代码展示
var transaction = db.transaction(['people'], "readwrite"); //创建一个连接
var store = transaction.objectStore("people");  //获取store
var request = store.add({
    name: 'myron',
    email: 'test@qq.com',
    created: new Date()
}); //添加信息

request.onerror = function(e){
    alert('error!');
    console.dir(e);
} //当添加失败时调用

request.onsuccess = function(e){
    console.log('Did it!');
} //添加成功时调用

request = store.get(1);  //获取第一条数据

request.onsuccess = function(e){
    var result = e.target.result;
    console.dir(result);
    if(result){
        //拿到存储的对象
	}
}

애플리케이션 캐시

위 내용은 HTML5 오프라인 저장 지식에 대한 자세한 설명입니다.

관련 권장사항:

html5 오프라인 저장소와 로컬 캐시 인스턴스를 구별하는 방법에 대한 자세한 설명

HTML5 오프라인 저장소 원리 및 구현 코드 예제

HTML5 오프라인 저장소 원리

위 내용은 HTML5 오프라인 저장 지식에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
H5 : 최신 버전의 HTML 탐색H5 : 최신 버전의 HTML 탐색May 03, 2025 am 12:14 AM

html5isamajorrevisionof thehtml thatrevolutions webdevelopments and capabilitiess.1) itenhancescodereadabilitys 및 and .2) html5enablestriCher, Interactive Experiences, Withoutplugs를 허용합니다

기본 이외 : H5 코드의 고급 기술기본 이외 : H5 코드의 고급 기술May 02, 2025 am 12:03 AM

H5에 대한 고급 팁에는 다음이 포함됩니다. 1. 복잡한 그래픽 사용, 2. 웹 워크를 사용하여 성능 향상, 3. WebStorage, 4. 응답 디자인 구현, 5. WebRTC를 사용하여 실시간 커뮤니케이션을 달성하기 위해, 6. 성능 최적화 및 모범 사례를 수행하십시오. 이 팁은 개발자가보다 역동적이고 대화식 및 효율적인 웹 응용 프로그램을 구축 할 수 있도록 도와줍니다.

H5 : 웹 컨텐츠 및 디자인의 미래H5 : 웹 컨텐츠 및 디자인의 미래May 01, 2025 am 12:12 AM

H5 (HTML5)는 새로운 요소와 API를 통해 웹 컨텐츠와 디자인을 개선합니다. 1) H5는 시맨틱 태깅 및 멀티미디어 지원을 향상시킵니다. 2) 웹 디자인을 풍부하게하는 캔버스 및 SVG를 소개합니다. 3) H5는 새로운 태그와 API를 통해 HTML 기능을 확장하여 작동합니다. 4) 기본 사용에는이를 사용하여 그래픽 생성이 포함되며, 고급 사용량은 WebStorageapi와 관련이 있습니다. 5) 개발자는 브라우저 호환성 및 성능 최적화에주의를 기울여야합니다.

H5 : 웹 개발을위한 새로운 기능 및 기능H5 : 웹 개발을위한 새로운 기능 및 기능Apr 29, 2025 am 12:07 AM

H5는 여러 가지 새로운 기능과 기능을 제공하여 웹 페이지의 상호 작용 및 개발 효율성을 크게 향상시킵니다. 1. Enhance SEO와 같은 시맨틱 태그. 2. 멀티미디어 지원은 오디오 및 비디오 재생 및 태그를 단순화합니다. 3. 캔버스 드로잉은 역동적 인 그래픽 드로잉 도구를 제공합니다. 4. 로컬 스토리지는 LocalStorage 및 SessionStorage를 통해 데이터 스토리지를 단순화합니다. 5. Geolocation API는 위치 기반 서비스의 개발을 용이하게합니다.

H5 : HTML5의 주요 개선H5 : HTML5의 주요 개선Apr 28, 2025 am 12:26 AM

HTML5는 5 가지 주요 개선 사항을 제공합니다. 1. 시맨틱 태그는 코드 선명도 및 SEO 효과를 향상시킵니다. 2. 멀티미디어 지원은 비디오 및 오디오 임베딩을 단순화합니다. 3. 형태 향상은 검증을 단순화한다. 4. 오프라인 및 로컬 스토리지는 사용자 경험을 향상시킵니다. 5. 캔버스 및 그래픽 기능은 웹 페이지의 시각화를 향상시킵니다.

HTML5 : 표준과 웹 개발에 미치는 영향HTML5 : 표준과 웹 개발에 미치는 영향Apr 27, 2025 am 12:12 AM

HTML5의 핵심 기능에는 시맨틱 태그, 멀티미디어 지원, 오프라인 저장 및 로컬 스토리지 및 형태 향상이 포함됩니다. 1. 코드 가독성 및 SEO 효과를 향상시키는 시맨틱 태그 등. 2. 레이블로 멀티미디어 임베딩을 단순화하십시오. 3. ApplicationCache 및 LocalStorage와 같은 오프라인 스토리지 및 로컬 스토리지는 네트워크없는 작동 및 데이터 저장을 지원합니다. 4. 양식 향상은 처리 및 검증을 단순화하기 위해 새로운 입력 유형 및 검증 속성을 도입합니다.

H5 코드 예제 : 실제 응용 프로그램 및 튜토리얼H5 코드 예제 : 실제 응용 프로그램 및 튜토리얼Apr 25, 2025 am 12:10 AM

H5는 다양한 새로운 기능과 기능을 제공하여 프론트 엔드 개발 기능을 크게 향상시킵니다. 1. 멀티미디어 지원 : 미디어를 포함하고 요소를 포함하여 플러그인이 필요하지 않습니다. 2. 캔버스 : 요소를 사용하여 2D 그래픽 및 애니메이션을 동적으로 렌더링합니다. 3. 로컬 스토리지 : LocalStorage 및 SessionStorage를 통해 지속적인 데이터 저장을 구현하여 사용자 경험을 향상시킵니다.

H5와 HTML5 사이의 연결 : 유사성과 차이H5와 HTML5 사이의 연결 : 유사성과 차이Apr 24, 2025 am 12:01 AM

H5 및 HTML5는 다른 개념입니다. HTML5는 새로운 요소 및 API를 포함하는 HTML의 버전입니다. H5는 HTML5를 기반으로 한 모바일 애플리케이션 개발 프레임 워크입니다. HTML5는 브라우저를 통해 코드를 구문 분석하고 렌더링하는 반면 H5 응용 프로그램은 컨테이너를 실행하고 JavaScript를 통해 기본 코드와 상호 작용해야합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기