JavaScript Cookies
Cookies သည် သင့်အား အသုံးပြုသူအချက်အလက်ကို ဝဘ်စာမျက်နှာများတွင် သိမ်းဆည်းနိုင်စေပါသည်။
Cookies ဆိုတာဘာလဲ။
ကွတ်ကီးများသည် သင့်ကွန်ပျူတာပေါ်တွင် သေးငယ်သော စာသားဖိုင်များတွင် သိမ်းဆည်းထားသည့် ဒေတာများဖြစ်သည်။
ဝဘ်ဆာဗာသည် ဘရောက်ဆာတစ်ခုထံသို့ ဝဘ်စာမျက်နှာတစ်ခု ပေးပို့သောအခါ၊ ချိတ်ဆက်မှု ပိတ်သွားကာ ဆာဗာသည် သုံးစွဲသူနှင့်ပတ်သက်သည့် အရာအားလုံးကို မေ့သွားပါသည်။
"အသုံးပြုသူနှင့်ပတ်သက်သည့် အချက်အလက်များကို မှတ်မိရန်" ပြဿနာကို ဖြေရှင်းရန်အတွက် ကွတ်ကီးများကို တီထွင်ခဲ့သည်-
- အသုံးပြုသူတစ်ဦးသည် ဝဘ်စာမျက်နှာသို့ ဝင်ကြည့်သောအခါတွင် ၎င်း၏အမည်ကို ကွက်ကီးတစ်ခုတွင် သိမ်းဆည်းထားနိုင်သည်။
- အသုံးပြုသူသည် စာမျက်နှာသို့ နောက်တစ်ကြိမ်ဝင်ရောက်သည့်အခါ၊ ကွတ်ကီးသည် ၎င်း၏အမည်ကို မှတ်မိမည်ဖြစ်သည်။
ကွတ်ကီးများကို အမည်-တန်ဖိုးအတွဲများကဲ့သို့ သိမ်းဆည်းထားသည်-
username = John Doe
ဘရောက်ဆာတစ်ခုသည် ဆာဗာတစ်ခုမှ ဝဘ်စာမျက်နှာကို တောင်းဆိုသောအခါ၊ စာမျက်နှာနှင့်သက်ဆိုင်သော ကွတ်ကီးများကို တောင်းဆိုမှုတွင် ထည့်သွင်းသွားမည်ဖြစ်သည်။ ဤနည်းဖြင့် ဆာဗာသည် အသုံးပြုသူများ၏ အချက်အလက်များကို "မှတ်မိရန်" လိုအပ်သောဒေတာကို ရရှိပါသည်။
သင့်ဘရောက်ဆာတွင် ဒေသတွင်း cookies ပံ့ပိုးမှုပိတ်ထားပါက အောက်ပါနမူနာတစ်ခုမှ အလုပ်မလုပ်ပါ။
JavaScript ဖြင့် Cookie ဖန်တီးပါ။
JavaScript သည် ပိုင်ဆိုင်မှုဖြင့် ကွက်ကီးများကို ဖန်တီး၊ ဖတ်နိုင်၊ ဖျက်နိုင်သည် document.cookie
။
JavaScript ဖြင့် ကွက်ကီးတစ်ခုကို ဤကဲ့သို့ ဖန်တီးနိုင်သည်-
document.cookie = "username=John Doe";
သင်သည် သက်တမ်းကုန်ဆုံးရက် (UTC အချိန်) တွင်လည်း ထည့်နိုင်သည်။ မူရင်းအားဖြင့်၊ ဘရောက်ဆာကိုပိတ်သည့်အခါ ကွတ်ကီးကို ဖျက်လိုက်သည်-
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";
လမ်းကြောင်းဘောင်တစ်ခုဖြင့်၊ သင်သည် cookie ၏လမ်းကြောင်းကိုဘရောက်ဆာအားပြောပြနိုင်သည်။ မူရင်းအားဖြင့်၊ ကွက်ကီးသည် လက်ရှိစာမျက်နှာတွင် ရှိသည်။
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
JavaScript ဖြင့် Cookie ကိုဖတ်ပါ။
JavaScript ဖြင့် cookies များကို ဤကဲ့သို့ ဖတ်နိုင်သည်-
let x = document.cookie;
document.cookie
cookie1=value ကဲ့သို့သော စာကြောင်းတစ်ခုတွင် ကွတ်ကီးများအားလုံးကို ပြန်ပေးပါမည်။ cookie2=တန်ဖိုး၊ cookie3=တန်ဖိုး၊
JavaScript ဖြင့် Cookie ကိုပြောင်းပါ။
JavaScript ဖြင့်၊ သင်ဖန်တီးထားသည့်အတိုင်း ကွတ်ကီးတစ်ခုကို သင်ပြောင်းနိုင်သည်-
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
ကွတ်ကီးအဟောင်းကို ထပ်ရေးထားသည်။
JavaScript ဖြင့် Cookie တစ်ခုကို ဖျက်ပါ။
ကွတ်ကီးကိုဖျက်ခြင်းသည် အလွန်ရိုးရှင်းပါသည်။
ကွတ်ကီးကိုဖျက်သောအခါတွင် ကွတ်ကီးတန်ဖိုးကို သတ်မှတ်ရန် မလိုအပ်ပါ။
သက်တမ်းကုန်ဆုံးသည့်ဘောင်ကို ယခင်ရက်စွဲတစ်ခုအဖြစ် သတ်မှတ်လိုက်ပါ-
document.cookie = "username=; expires=Thu, 01
Jan 1970 00:00:00 UTC; path=/;";
မှန်ကန်သော ကွတ်ကီးကို ဖျက်ကြောင်း သေချာစေရန် ကွတ်ကီးလမ်းကြောင်းကို သတ်မှတ်သင့်သည်။
လမ်းကြောင်းမသတ်မှတ်ပါက အချို့ဘရောက်ဆာများသည် သင့်အား cookie တစ်ခုကို ဖျက်ပစ်နိုင်မည်မဟုတ်ပေ။
Cookie String
ပိုင်ဆိုင်မှု သည် document.cookie
သာမန်စာသား စာကြောင်းနှင့်တူသည်။ ဒါပေမယ့် မဟုတ်ပါဘူး။
သင်သည် document.cookie တွင် ကွက်ကီးစာကြောင်း တစ်ခုလုံးကို ရေးထားသော်လည်း၊ ၎င်းကို ထပ်မံဖတ်ရှုသည့်အခါ၊ ၎င်း၏ အမည်-တန်ဖိုးအတွဲကိုသာ မြင်တွေ့နိုင်သည်။
ကွတ်ကီးအသစ်တစ်ခု သတ်မှတ်ပါက၊ ကွတ်ကီးအဟောင်းများကို ထပ်မရေးပါ။ ကွတ်ကီးအသစ်ကို document.cookie တွင် ပေါင်းထည့်လိုက်သောကြောင့် document.cookie ကို ထပ်မံဖတ်ရှုပါက၊
cookie1 = တန်ဖိုး; cookie2 = တန်ဖိုး၊
သတ်မှတ်ထားသော ကွက်ကီးတစ်ခု၏ တန်ဖိုးကို ရှာလိုပါက၊ cookie စာကြောင်းရှိ cookie တန်ဖိုးကို ရှာဖွေသည့် JavaScript လုပ်ဆောင်ချက်ကို ရေးရပါမည်။
JavaScript Cookie နမူနာ
လိုက်နာရန် ဥပမာတွင်၊ ဧည့်သည်တစ်ဦး၏အမည်ကို သိမ်းဆည်းသည့် ကွတ်ကီးတစ်ခု ဖန်တီးပါမည်။
ဝဘ်စာမျက်နှာသို့ ဧည့်သည်တစ်ဦး ပထမဆုံးရောက်ရှိသည့်အခါတွင် သူ/သူမ၏အမည်ကို ဖြည့်ခိုင်းမည်ဖြစ်သည်။ ထို့နောက် အမည်ကို ကွတ်ကီးတစ်ခုတွင် သိမ်းဆည်းထားသည်။
နောက်တစ်ကြိမ် ဧည့်သည်သည် တူညီသောစာမျက်နှာသို့ ရောက်ရှိလာပါက ကြိုဆိုကြောင်း မက်ဆေ့ချ်တစ်ခု ရရှိမည်ဖြစ်သည်။
ဥပမာအားဖြင့် ကျွန်ုပ်တို့သည် JavaScript လုပ်ဆောင်ချက် 3 ခုကို ဖန်တီးပါမည်။
- ကွက်ကီးတန်ဖိုး သတ်မှတ်ရန် လုပ်ဆောင်ချက်တစ်ခု
- ကွက်ကီးတန်ဖိုးကို ရယူရန် လုပ်ဆောင်ချက်တစ်ခု
- ကွက်ကီးတန်ဖိုးကို စစ်ဆေးရန် လုပ်ဆောင်ချက်တစ်ခု
ကွတ်ကီးတစ်ခု သတ်မှတ်ရန် လုပ်ဆောင်ချက်တစ်ခု
function
ဦးစွာ၊ ကျွန်ုပ်တို့သည် လည်ပတ်သူ၏အမည်ကို cookie variable တွင် သိမ်းဆည်းထားသည့် တစ်ခုကို ဖန်တီးသည် -
ဥပမာ
function setCookie(cname, cvalue, exdays) {
const d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
let expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
ဥပမာ ရှင်းပြထားသည်-
အထက်ဖော်ပြပါ လုပ်ဆောင်ချက်၏ ကန့်သတ်ချက်များသည် ကွတ်ကီးအမည် (cname)၊ ကွက်ကီးတန်ဖိုး (တန်ဖိုး) နှင့် ကွတ်ကီးသက်တမ်းကုန်ဆုံးချိန်အထိ (ရက်စွဲများ) အရေအတွက်များဖြစ်သည်။
လုပ်ဆောင်ချက်သည် ကွက်ကီးအမည်၊ ကွက်ကီးတန်ဖိုးနှင့် သက်တမ်းကုန်ဆုံးသည့်စာကြောင်းတို့ကို ပေါင်းထည့်ခြင်းဖြင့် ကွက်ကီးတစ်ခု သတ်မှတ်ပေးသည်။
ကွတ်ကီးတစ်ခုရယူရန် လုပ်ဆောင်ချက်တစ်ခု
ထို့နောက် function
သတ်မှတ်ထားသော cookie ၏တန်ဖိုးကို ပြန်ပေးသည့်တစ်ခု ဖန်တီးသည်-
ဥပမာ
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
လုပ်ဆောင်ချက်ကို ရှင်းပြထားသည်-
ကွက်ကီးအမည်ကို ကန့်သတ်ချက် (cname) အဖြစ် ယူပါ။
(cname + "=") ကိုရှာဖွေရန် စာသားဖြင့် ပြောင်းလဲနိုင်သော (အမည်) ကို ဖန်တီးပါ။
အထူးစာလုံးများဖြင့် ကွတ်ကီးများကို ကိုင်တွယ်ရန် ကွတ်ကီးစာကြောင်းကို ကုဒ်လုပ်ပါ၊ ဥပမာ '$'
document.cookie ကို semicolon ပေါ်မှ ca (ca = decodedCookie.split(';'))) ဟုခေါ်သော array တစ်ခုသို့ ခွဲလိုက်ပါ။
ca array (i = 0; i < ca.length; i++)၊ နှင့် c = ca[i]) တန်ဖိုးတစ်ခုစီကို ဖတ်ပါ။
ကွက်ကီးကို တွေ့ပါက (c.indexOf(name) == 0)၊ cookie ၏တန်ဖိုး (c.substring(name.length၊ c.length) ကို ပြန်ပေးပါ။
ကွတ်ကီးကို ရှာမတွေ့ပါက၊ "" ပြန်သွားပါ။
ကွတ်ကီးစစ်ဆေးရန် လုပ်ဆောင်ချက်တစ်ခု
နောက်ဆုံး၊ ကျွန်ုပ်တို့သည် cookie ကိုသတ်မှတ်ထားခြင်းရှိမရှိစစ်ဆေးသည့်လုပ်ဆောင်ချက်ကိုဖန်တီးသည်။
ကွတ်ကီးသတ်မှတ်ထားပါက နှုတ်ခွန်းဆက်စကားပြပါမည်။
setCookie
cookie ကို မသတ်မှတ်ထားပါက၊ ၎င်းသည် လုပ်ဆောင်ချက်ကို ခေါ်ဆိုခြင်းဖြင့် အသုံးပြုသူအမည်ကို တောင်းဆိုကာ 365 ရက်ကြာ သိမ်းဆည်းထားသည့် ကွတ်ကီးအကွက်ကို ပြသပေးမည်ဖြစ်သည် ။
ဥပမာ
function checkCookie() {
let
username = getCookie("username");
if (username != "") {
alert("Welcome again " + username);
} else {
username = prompt("Please enter your name:", "");
if (username != ""
&& username != null) {
setCookie("username", username, 365);
}
}
}
အားလုံးအတူတကွယခု
ဥပမာ
function setCookie(cname, cvalue, exdays) {
const d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
let expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue +
";" + expires + ";path=/";
}
function getCookie(cname) {
let name = cname + "=";
let ca
= document.cookie.split(';');
for(let i = 0; i < ca.length; i++)
{
let 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() {
let 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()
သည် စာမျက်နှာကို ဖွင့်သောအခါတွင် လုပ်ဆောင်ချက်ကို လုပ်ဆောင်သည်။