JavaScript Cookies

Cookie 让您在网页中存储用户信息。

什么是 cookie?

Cookie 是在您的计算机上存储在小的文本文件中的数据。

当 web 服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切。

Cookie 是为了解决“如何记住用户信息”而发明的:

  • 当用户访问网页时,他的名字可以存储在 cookie 中。
  • 下次用户访问该页面时,cookie 会“记住”他的名字。

Cookie 保存在名称值对中,如:

username = Bill Gates

当浏览器从服务器请求一个网页时,将属于该页的 cookie 添加到该请求中。这样服务器就获得了必要的数据来“记住”用户的信息。

如果浏览器已关闭本地 cookie 支持,则以下实例均无法工作。

通过 JavaScript 创建 cookie

JavaScript 可以用 document.cookie 属性创建、读取、删除 cookie。

通过 JavaScript,可以这样创建 cookie:

document.cookie = "username=Bill Gates";

您还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:

document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC";

Da kai ko da ga kai: path Parama, ka da kai ko da ga kai da kai da kai ko da kai da kai da kai ko ta da kai: path. Idan wa ka da ko da, ko da ga kai da kai da kai ko ta da kai.

document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";

Da kai ko da ga kai tsarina dace ko:

Da kai ko da ga kai tsarina dace ko, ka da kai ka da kai ka da kai ka da kai ko ta da kai:

var x = document.cookie;

document.cookie Ga kai da kai da kai da kai da kai da kai tsarina dace ko da kai, ka da kai ga ga kai: cookie1=value; cookie2=value; cookie3=value;

Da kai ko da ga kai tsarina dace ko:

Da kai ko da ga kai tsarina dace ko, ka da kai ka da kai ka da kai ka da kai ko ta da kai:

document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";

Tsarina dace ko da kai.

Da kai ko da tsarina dace ko da kai:

Da kai ko da tsarina dace ko da kai kai da kai:

Idan wa ka da ko da tsarina dace ko da kai, ko da ga kai kai da kai:

Da kai ko da ga kai: expires Parama ta da kai ko da ga kai kai da kai:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

Wa ka da ko da path tsarina dace ko da kai, kai da kai da kai da kai da kai ko ta da kai.

Idan wa ka da ko da, ko da ga kai kai da kai ko ta da kai.

Tsarina dace ko

document.cookie Attribute da ga kai ga ga kai. Ko ga kai.

Idan wa ka da ko ta, document.cookie Dace tsarina dace ko ga kai ga ga kai. Idan wa ka da ka da tsarina dace dace ko, ka ga ka da ga ga kai:

Idan tsa tsarina dace ko ta da kai, ko kai kai da kai kai. Tsarina dace kai da ga tsa document.cookie, so ni wa ka da ka da document.cookie, ka ga ka da kai:

cookie1 = value; cookie2 = value;
     

Dukkannan kuki ake ɗaukar samar da JavaScript don ɗaukar samar da kuki da ake ɗaukar samar da.

Tsamman kuki JavaScript

A cikin shi, ake ɗaukar samar da kuki don ɗaukar samar da sunan ɗan ƙasa.

Kamar yadda ɗan ƙasa yace ga shi a cikin shi a farkon yankin, ana ɗaukar samar da sunan shi a kuki.

Wannan ɗan ƙasa ake samar da wata rahoto a lokacin da ɗan ƙasa yace ga shi a cikin shi:

Misali, ake ɗaukar samar da 3 kwararriyar JavaScript:

  1. Kwararriyar gwamnan kuki:
  2. Kwararriyar samar da kuki:
  3. Kwararriyar yana nufin kuki:

Kwararriyar gwamnan kuki

Kamfanin farko, a kafa wata ƙwararriyar don ɗaukar samar da sunan ɗan ƙasa a kuki:

مثال

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
} 

Tsafta na ƙoƙarin:

Hanyar wata ƙwararriyar ita ce: sunan kuki (cname), kuki na samarwa (cvalue), da kuma yadda kuki ke ƙasa da ƙashe (exdays).

Gwamnan kuki a cewa yana ɗaukar samar da kuki na sunan kuki, kuki na samarwa da kuma kuki da ke ƙasa da ƙashe.

Kwararriyar samar da kuki

Kamfanin, a kafa wata ƙwararriyar ta ƙa ƙoƙarin kuki da ake ɗaukar samar da:

مثال

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
         }
         if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
         }
     }
    return "";
} 

Tsafta na ƙwararriyar:

Kuki a matsayin gudanarwa (cname).

Ananta gurɗe (name) da ake ɗaukar samar da samarwa (CNAME”=”).

Tsafta kuki arofin, tsafta kuki da ke yin kiyayi, misali “$”.

استخدم النقاط العشرية لتقسيم document.cookie إلى مجموعة تُدعى ca (decodedCookie.split(';')).

استكشاف مجموعة ca (i = 0; i < ca.length; i++)، ثم قراءة كل قيمة c = ca[i].

إذا تم العثور على الكوكي (c.indexOf(name) == 0)، فيمكنك العودة إلى القيمة (c.substring(name.length, c.length)).

إذا لم يتم العثور على الكوكي، فسيتم إرجاع "".

دالة التحقق من الكوكي

في النهاية، سنقوم بإنشاء دالة لتحقق من تعيين الكوكي.

إذا تم تعيين الكوكي، سيتم عرض التحية.

إذا لم يتم تعيين الكوكي، سيتم عرض نافذة تحذير لطلب اسم المستخدم، وستتم حفظ اسم المستخدم ككوكي لمدة 365 يومًا من خلال دعوة setCookie دالة:

مثال

function checkCookie() {
    var username = getCookie("username");
    إذا (username != "") {
        alert("Welcome again " + username);
    } else {
        username = prompt("Please enter your name:", "");
        إذا (username != "" && username != null) {
            setCookie("username", username, 365);
        }
    }
} 

الآن اجمعوهم معًا

مثال

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
         }
        if (c.indexOf(name)  == 0) {
            return c.substring(name.length, c.length);
         }
    }
    return "";
}
function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
}

亲自试一试

上面的例子会在页面加载后运行 checkCookie() 函数。