Operasi DOM yang berkaitan untuk membangunkan troli beli-belah dengan JavaScript (2)

Dalam bahagian sebelumnya, kami terutamanya memperoleh objek nod untuk dikendalikan

Bahagian ini terutamanya melibatkan tetapan kuki dan operasi pemerolehan, menggunakan corak reka bentuk tunggal untuk reka bentuk enkapsulasi

Corak reka bentuk kes tunggal

Berikut ialah pengenalan Wikipedia kepada corak tunggal:

Apabila menggunakan corak tunggal, kelas yang menjana singleton mesti memastikan bahawa hanya satu contoh wujud keseluruhan sistem Hanya satu objek global diperlukan untuk menyelaraskan keseluruhan kelakuan sistem. Sebagai contoh, dalam fail konfigurasi keseluruhan sistem, data konfigurasi mempunyai objek tunggal untuk bacaan dan pengubahsuaian bersatu Apabila objek lain memerlukan data konfigurasi, mereka juga memperoleh data konfigurasi melalui objek tunggal ini pengurusan konfigurasi.

Idea corak tunggal ialah: kelas boleh mengembalikan rujukan kepada objek (dan ia akan sentiasa sama) dan kaedah untuk mendapatkan contoh (kaedah statik, biasanya menggunakan nama getInstance). Kemudian apabila kita memanggil kaedah ini, jika rujukan yang dipegang oleh kelas tidak kosong, rujukan akan dikembalikan jika tidak, contoh kelas akan dibuat, dan rujukan contoh akan diberikan kepada rujukan yang dipegang oleh kelas dan. kemudian kembali. Pada masa yang sama, takrifkan pembina kelas sebagai kaedah persendirian untuk menghalang fungsi lain daripada menggunakan pembina untuk membuat instantiate objek, dan hanya mendapatkan satu-satunya contoh kelas melalui kaedah statik kelas.

Borang penuh: [] adalah pilihan

document.cookie = “name=value[;expires=date][;path=path-to-resource][;domain=nama 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>

Buat fail cookie.js dan letakkan kod JavaScript di atas ke dalamnya.

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

akan dipanggil dari halaman HTML kemudian untuk mencapai kesan modul fungsi.


Meneruskan pembelajaran
||
<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>
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!