찾다
웹 프론트엔드JS 튜토리얼JavaScript는 localStorage를 사용하여 데이터를 저장합니다.

이 글은 JavaScript가 localStorage를 사용하여 데이터를 저장하는 방법을 주로 소개하는 javascript에 대한 관련 지식을 제공합니다. 글의 샘플 코드가 매우 자세하게 소개되어 있으며 모든 사람에게 도움이 되기를 바랍니다.

JavaScript는 localStorage를 사용하여 데이터를 저장합니다.

[관련 추천: javascript video tutorial, web front-end]

Background

과거에는 js에서 SessionCookie를 사용했습니다. 정보를 저장하려면, 마치 아직도 머무르고 있는 것처럼. 그 때 동료들에게 새로운 솔루션이 있는지 물었을 때, 브라우저 측에 데이터를 저장할 수 있는 HTML5 localStorage 로컬 저장소가 있다는 것을 알게 되었습니다.

초기의 쿠키는 아주 작은 것, 약 4KB만 저장할 수 있었고 보안이 매우 열악했던 것으로 기억합니다. IE6 시대에는 하나의 도메인 이름에 쿠키가 20개만 포함될 수 있었습니다. , IE도 userData 항목은 쓸모가 없습니다. Flash에는 Storage도 함께 제공되는데, 이는 상대적으로 크고 쿠키보다 약 25배 많은 공간을 가지고 있습니다. 당시 Flash도 현재 폐기되었습니다.

H5 시대에는 통일되고, LocalStorage가 세계를 지배합니다. 공식적인 권장 사항은 각 웹 사이트가 5MB 여야 한다는 것입니다. 이는 매우 큰 크기입니다. 브라우저 설정은 다양하지만 일반적으로 일부 JSON이나 문자열 또는 캐시를 저장하는 데 충분합니다.

HTML5 LocalStorage 로컬 저장소

  • sessionStorage: 세션이 종료되면(보통 창이 닫히면) 데이터가 지워집니다.
    localStorage:
  • 저장된 데이터는 오랫동안 존재합니다. 다음에 웹사이트를 방문하면 웹페이지에서 이전에 저장된 데이터를 직접 읽을 수 있습니다. 저장 기간이 다른 점을 제외하면 두 개체의 속성과 방법은 완전히 동일합니다. 훨씬 더 큰 저장 공간을 사용할 수 있지만 쿠키 메커니즘의 향상된 버전과 매우 유사합니다. 그러나 쿠키와 마찬가지로 동일한 도메인 제한이 적용됩니다. 웹페이지에 저장된 데이터는 동일한 도메인의 웹페이지에서만 읽을 수 있습니다.
  • window 객체에 sessionStorage 및 localStorage 속성이 포함되어 있는지 확인하면 브라우저가 이 두 객체를 지원하는지 확인할 수 있습니다.
function checkStorageSupport()
{
 // sessionStorage
 if (window.sessionStorage) {
  return true;
 } else {
  return false;
 }
 
 // localStorage
 if (window.localStorage) {
  return true;
 } else {
  return false;
 }
}

Storage 작업

sessionStorage 및 localStorage에 의해 저장된 데이터는 모두 "키-값 키-값 쌍"

형식으로 존재합니다. 즉, 각 데이터 항목에는 키 이름과 해당 값이 있습니다. 모든 데이터는 텍스트 형식으로 저장됩니다.

//sessionStorage 操作
sessionStorage.setItem("key","value");     // setItem方法,存储变量名为key,值为value的变量
var valueSession = sessionStorage.getItem("key");  // getItem方法,读取存储变量名为key的值
sessionStorage.removeItem('key');      // removeItem方法,删除变量名为key的存储变量
sessionStorage.clear();        // clear方法,清除所有保存数据
//localStorage 操作
localStorage.setItem("key","value");     // 存储变量名为key,值为value的变量
localStorage.key = "value"        // 同setItem方法,存储数据
var valueLocal = localStorage.getItem("key");   // 读取存储变量名为key的值
var valueLocal = localStorage.key;      // 同getItem,读取数据
localStorage.removeItem('key');      // removeItem方法,删除变量名为key的存储变量
localStorage.clear();         // clear方法,清除所有保存的数据

// 利用length属性和key方法,遍历所有的数据
for(var i = 0; i < localStorage.length; i++)
{
 console.log(localStorage.key(i));
}

// 存储 localStorage 数据为 Json 格式
value = JSON.stringify(jsonValue);      // 将 JSON 对象 jsonValue 转化成字符串
localStorage.setItem("key", value);     // 用 localStorage 保存转化好的的字符串

// 读取 localStorage 中 Json 格式数据
var value = localStorage.getItem("key");    // 取回 value 变量
jsonValue = JSON.parse(value);      // 把字符串转换成 JSON 对象
저장 이벤트

저장된 데이터가 변경되면 저장 이벤트가 발생합니다. 이 이벤트에 대한 콜백 함수를 지정할 수 있습니다.

window.addEventListener("storage",onStorageChange);
콜백 함수는 이벤트 객체를 매개변수로 받습니다. 이 이벤트 객체의 key 속성은 변경된 키 이름을 저장합니다.

function onStorageChange(e)
{
  console.log(e.key); 
}

key 속성 외에도 이벤트 개체에는 세 가지 속성이 있습니다.

oldValue: 업데이트 전 값. 키가 새로 추가된 경우 이 속성은 null입니다.

newValue: 업데이트된 값. 키가 삭제된 경우 이 속성은 null입니다.
  • url: 원래 저장 이벤트를 실행한 웹페이지의 URL입니다.
  • 특별히 주의할 점은 이 이벤트가 현재 페이지에서 실행되어 데이터가 변경되지 않는다는 것입니다. 브라우저가 도메인 이름으로 동시에 여러 페이지를 열면 페이지 중 하나가 sessionStorage 또는 localStorage의 데이터를 변경하면 다른 모든 페이지의 저장 이벤트가 트리거되고 저장 이벤트는 원본에 의해 트리거되지 않습니다. 페이지. 이 메커니즘을 통해 여러 창 간의 통신이 가능해집니다. IE를 제외한 모든 브라우저 중에서 모든 페이지에서 저장 이벤트를 트리거합니다.

지식 확장

1. localStorage와 sessionStorage는 HTML5 웹 저장소에서 제공하는 두 가지 저장 방법이며 대부분의 브라우저에서 지원됩니다2 localStorage와 sessionStorage의 차이점은 다음과 같습니다. ), localStorage 및 sessionStorage는 모두 클라이언트에 임시 정보를 저장하는 데 사용되는 개체입니다.

(2) 문자열 유형의 객체만 저장할 수 있습니다(다른 기본 유형의 객체도 사양에 저장할 수 있지만 지금까지 이를 구현한 브라우저는 없습니다).

(3) localStorage 수명 주기는 영구적입니다. 즉, 사용자가 브라우저에서 제공하는 UI에서 localStorage 정보를 지우지 않는 한 이 정보는 영원히 존재합니다. (메모리에 기록됨)

 sessionStorage의 수명주기는 현재 창이나 탭이 닫히면 sessionStorage를 통해 저장된 모든 데이터가 지워집니다(세션 저장소).

(4) 서로 다른 브라우저는 localStorage 또는 sessionStorage의 정보를 공유할 수 없습니다. 동일한 브라우저의 서로 다른 페이지는 동일한 localStorage(페이지가 동일한 도메인 이름 및 포트에 속함)를 공유할 수 있지만, sessionStorage 정보는 서로 다른 페이지나 탭 간에 공유될 수 없습니다.

여기서 페이지와 탭은 최상위 창만 참조한다는 점에 유의해야 합니다. 탭에 여러 iframe 태그가 포함되어 있고 동일한 소스 페이지에 속하는 경우 sessionStorage는 이들 간에 공유될 수 있습니다. (동일한 출처원칙)

3 localStorage와 sessionStorage가 저장할 수 있는 데이터의 크기는 일반적으로 5MB

[관련 권장사항: javascript video tutorial, web front-end]

위 내용은 JavaScript는 localStorage를 사용하여 데이터를 저장합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 脚本之家에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
브라우저 너머 : 실제 세계의 JavaScript브라우저 너머 : 실제 세계의 JavaScriptApr 12, 2025 am 12:06 AM

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Apr 11, 2025 am 08:23 AM

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Apr 11, 2025 am 08:22 AM

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript : 웹 언어의 다양성 탐색JavaScript : 웹 언어의 다양성 탐색Apr 11, 2025 am 12:01 AM

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 진화 : 현재 동향과 미래 전망JavaScript의 진화 : 현재 동향과 미래 전망Apr 10, 2025 am 09:33 AM

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

Demystifying JavaScript : 그것이하는 일과 중요한 이유Demystifying JavaScript : 그것이하는 일과 중요한 이유Apr 09, 2025 am 12:07 AM

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python 또는 JavaScript가 더 좋습니까?Python 또는 JavaScript가 더 좋습니까?Apr 06, 2025 am 12:14 AM

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.

JavaScript를 어떻게 설치합니까?JavaScript를 어떻게 설치합니까?Apr 05, 2025 am 12:16 AM

JavaScript는 이미 최신 브라우저에 내장되어 있기 때문에 설치가 필요하지 않습니다. 시작하려면 텍스트 편집기와 브라우저 만 있으면됩니다. 1) 브라우저 환경에서 태그를 통해 HTML 파일을 포함하여 실행하십시오. 2) Node.js 환경에서 Node.js를 다운로드하고 설치 한 후 명령 줄을 통해 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구