JavaScript로 장바구...로그인

JavaScript로 장바구니 개발을 위한 관련 DOM 작업 (2)

이전 섹션에서는 주로 동작할 노드 객체를 획득했습니다

이 섹션에서는 주로 캡슐화 설계를 위한 싱글턴 디자인 패턴을 사용하여 쿠키 설정 및 획득 작업을 다룹니다.

싱글 케이스 디자인 패턴

다음은 싱글톤 패턴에 대한 Wikipedia의 소개입니다.

싱글톤 패턴을 적용할 때 싱글톤을 생성하는 클래스는 인스턴스가 하나만 존재하는지 확인해야 합니다. 많은 경우 전체 시스템에는 하나의 전역 개체만 있으면 됩니다. 시스템 전체의 동작을 조정합니다. 예를 들어, 전체 시스템의 구성 파일에는 통합 읽기 및 수정을 위한 단일 개체가 있으며, 다른 개체에서도 구성 데이터가 필요할 때 이 단일 개체를 통해 구성 데이터를 얻을 수 있습니다. 환경.

싱글턴 패턴의 개념은 다음과 같습니다. 클래스는 객체에 대한 참조(항상 동일함)와 인스턴스를 가져오는 메서드(정적 메서드, 일반적으로 getInstance 이름을 사용함)를 반환할 수 있습니다. 그런 다음 이 메서드를 호출할 때 클래스가 보유한 참조가 비어 있지 않으면 참조가 반환됩니다. 그렇지 않으면 클래스의 인스턴스가 생성되고 인스턴스 참조가 클래스가 보유한 참조에 할당되고 그런 다음 돌아 왔습니다. 동시에, 클래스의 생성자를 프라이빗 메서드로 정의하여 다른 함수가 생성자를 사용하여 객체를 인스턴스화하는 것을 방지하고 클래스의 정적 메서드를 통해서만 클래스의 유일한 인스턴스를 얻습니다.

전체 형식: []는 선택 사항입니다.

document.cookie = “이름=값[;expires=날짜][;path=path-to-resource][;domain=도메인 이름][;secure]”

<script>
var cookieObj = {
    /*
     增加或修改cookie
     参数:o 对象{}
     name:string cookie名
     value:string cookie值
     expires:Date对象 过期时间
     path:string 路径限制
     domain:string 域名限制
     secure:boolean  true https  false或undeinfed
     */
    set: function(o) {
        var cookieStr = encodeURIComponent(o.name) + "=" + encodeURIComponent(o.value);
        //encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
        if(o.expires) {
            cookieStr += ";expires=" + o.expires;
        }
        if(o.path) {
            cookieStr += ";path=" + o.path;
        }
        if(o.domain) {
            cookieStr += ";domain=" + o.domain;
        }
        if(o.secure) {
            cookieStr += ";secure";
        }

        document.cookie = cookieStr;
    },
    /*
     删除
     参数:n string cookie的名字
     */
    del: function(n) {
        var date = new Date();
        date.setHours(-1);  //setHours() 方法用于设置指定的时间的小时字段。
        //this代表的是当前函数的对象
        this.set({
            name: n,
            expires: date
        });
    },
    /*查找*/
    get: function(n) {
        n = encodeURIComponent(n);
        var cooikeTotal = document.cookie;
        var cookies = cooikeTotal.split("; ");
        //split() 方法用于把一个字符串分割成字符串数组。
        for(var i = 0, len = cookies.length; i < len; i++) {
            var arr = cookies[i].split("=");
            if(n == arr[0]) {
                return decodeURIComponent(arr[1]);
            //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。    
            }
        }
    }
}
</script>

cookie.js 파일을 생성하고 위의 JavaScript 코드를 거기에 넣으세요.

<script type="text/javascript" src="cookie.js"></script>

는 함수 모듈 효과를 얻기 위해 향후 HTML 페이지에서 호출됩니다.


다음 섹션
<script> var cookieObj = { /* 增加或修改cookie 参数:o 对象{} name:string cookie名 value:string cookie值 expires:Date对象 过期时间 path:string 路径限制 domain:string 域名限制 secure:boolean true https false或undeinfed */ set: function(o) { var cookieStr = encodeURIComponent(o.name) + "=" + encodeURIComponent(o.value); //encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。 if(o.expires) { cookieStr += ";expires=" + o.expires; } if(o.path) { cookieStr += ";path=" + o.path; } if(o.domain) { cookieStr += ";domain=" + o.domain; } if(o.secure) { cookieStr += ";secure"; } document.cookie = cookieStr; }, /* 删除 参数:n string cookie的名字 */ del: function(n) { var date = new Date(); date.setHours(-1); //setHours() 方法用于设置指定的时间的小时字段。 //this代表的是当前函数的对象 this.set({ name: n, expires: date }); }, /*查找*/ get: function(n) { n = encodeURIComponent(n); var cooikeTotal = document.cookie; var cookies = cooikeTotal.split("; "); //split() 方法用于把一个字符串分割成字符串数组。 for(var i = 0, len = cookies.length; i < len; i++) { var arr = cookies[i].split("="); if(n == arr[0]) { return decodeURIComponent(arr[1]); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 } } } } </script>
코스웨어