>  기사  >  웹 프론트엔드  >  Node.js 로컬 스토리지 솔루션—localStorage 및 userData

Node.js 로컬 스토리지 솔루션—localStorage 및 userData

黄舟
黄舟원래의
2017-02-25 13:36:11850검색

웹 애플리케이션의 급속한 발전으로 인해 일부 데이터의 로컬 저장이 중요한 요구 사항이 되었으며, 가장 일반적인 솔루션은 모든 사람이 자주 사용하는 쿠키이지만 쿠키의 단점은 분명합니다. 다른 솔루션에는 IE6 이상용 userData, Firefox용 globalStorage 및 Flash 로컬 저장소가 포함됩니다.

sessionStorage 및 localStorage

웹 저장소는 실제로 sessionStorage와 localStorage의 두 부분으로 구성됩니다.

sessionStorage는 세션에 데이터를 로컬로 저장하는 데 사용됩니다. 이러한 데이터는 동일한 세션의 페이지에서만 액세스할 수 있으며 세션이 끝나면 데이터가 삭제됩니다. 따라서 sessionStorage는 영구 로컬 저장소가 아니며 세션 수준 저장소일 뿐입니다.

localStorage는 영구 로컬 저장소로 사용됩니다. 데이터가 적극적으로 삭제되지 않는 한 데이터는 만료되지 않습니다.

userData

구문:

XML  <Prefix: CustomTag ID=sID STYLE="behavior:url(&#39;#default#userData&#39;)" />

HTML  <ELEMENT STYLE="behavior:url(&#39;#default#userData&#39;)" ID=sID>

Scripting    object .style.behavior = "url(&#39;#default#userData&#39;)"

object.addBehavior ("#default#userData")

속성:

  • expires 저장된 데이터의 userData 동작 만료 날짜를 설정하거나 가져옵니다.

  • XMLDocument XML에 대한 참조를 가져옵니다.

메서드:

  • getAttribute() 지정된 속성 값을 가져옵니다.

  • load(object)는 userData 저장 영역에서 저장된 객체 데이터를 로드합니다.

  • removeAttribute() 객체의 지정된 속성을 제거합니다.

  • save(object) userData 저장 영역에 객체 데이터를 저장합니다.

  • setAttribute()는 지정된 속성 값을 설정합니다.

localStorage

메서드:

  • localStorage.getItem(key): 지정된 로컬 저장소의 값을 가져옵니다. key

  • localStorage.setItem(key, value): 키 필드에 값을 저장합니다.

  • localStorage.removeItem(key): 삭제합니다. 지정된 키에 대해 로컬에 저장된 값

Encapsulation

localData = {
    hname:location.hostname?location.hostname:&#39;localStatus&#39;,
    isLocalStorage:window.localStorage?true:false,
    dataDom:null,

    initDom:function(){ //初始化userData
        if(!this.dataDom){
            try{
                this.dataDom = document.createElement(&#39;input&#39;);//这里使用hidden的input元素
                this.dataDom.type = &#39;hidden&#39;;
                this.dataDom.style.display = "none";
                this.dataDom.addBehavior(&#39;#default#userData&#39;);//这是userData的语法
                document.body.appendChild(this.dataDom);
                var exDate = new Date();
                exDate = exDate.getDate()+30;
                this.dataDom.expires = exDate.toUTCString();//设定过期时间
            }catch(ex){
                return false;
            }
        }
        return true;
    },
    set:function(key,value){
        if(this.isLocalStorage){
            window.localStorage.setItem(key,value);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                this.dataDom.setAttribute(key,value);
                this.dataDom.save(this.hname)
            }
        }
    },
    get:function(key){
        if(this.isLocalStorage){
            return window.localStorage.getItem(key);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                return this.dataDom.getAttribute(key);
            }
        }
    },
    remove:function(key){
        if(this.isLocalStorage){
            localStorage.removeItem(key);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                this.dataDom.removeAttribute(key);
                this.dataDom.save(this.hname)
            }
        }
    }
}

위는 js 로컬 저장소 솔루션인 localStorage 및 userData의 내용입니다. PHP 중국어 홈페이지(www.php.cn)로 !



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