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

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

伊谢尔伦
伊谢尔伦원래의
2016-11-23 14:41:39914검색

웹 애플리케이션의 급속한 발전으로 인해 일부 데이터의 로컬 저장이 중요한 요구 사항이 되었으며, 가장 일반적인 솔루션은 모든 사람이 자주 사용하는 쿠키이지만 쿠키의 단점은 분명합니다. 다른 솔루션에는 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): 지정된 키의 로컬 저장소 값을 가져옵니다.

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)
            }
        }
    }
}


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