Cookies در جاوا اسکریپت

کوکی ها (cookies) به شما امکان می دهند اطلاعات کاربر را در صفحات وب ذخیره کنید.

Cookies در جاوا اسکریپت

کوکی های جاوا اسکریپت

کوکی ها (cookies) به شما امکان می دهند اطلاعات کاربر را در صفحات وب ذخیره کنید.

کوکی ها چیست؟

کوکی ها داده هایی هستند که در فایل های متنی کوچک در رایانه شما ذخیره می شوند.

هنگامی که یک وب سرور یک صفحه وب را به یک مرورگر ارسال می کند، اتصال قطع می شود و سرور همه چیز را در مورد کاربر فراموش می کند.

کوکی ها برای حل مشکل "نحوه به خاطر سپردن اطلاعات کاربر" اختراع شدند.

هنگامی که کاربر از یک صفحه وب بازدید می کند، نام او می تواند در یک کوکی ذخیره شود.

دفعه بعد که کاربر از صفحه بازدید می کند، کوکی نام او را "به خاطر می آورد".

کوکی ها در جفت های نام-مقدار (name-value) ذخیره می شوند مانند:

کوکی های جاوا اسکریپت

هنگامی که یک مرورگر یک صفحه وب را از یک سرور درخواست می کند، کوکی های متعلق به صفحه به درخواست اضافه می شوند. به این ترتیب سرور داده های لازم را برای "به خاطر سپردن" اطلاعات مربوط به کاربران دریافت می کند.

اگر پشتیبانی از کوکی های محلی (local cookies) در مرورگر شما خاموش باشد، هیچ یک از مثال های زیر کار نمی کند.

ایجاد یک Cookie با جاوا اسکریپت

جاوا اسکریپت می تواند کوکی ها را با ویژگی document.cookie ایجاد، خواندن و حذف کند.

با JavaScript می توان یک کوکی به شکل زیر ایجاد کرد:

ایجاد یک Cookie با جاوا اسکریپت

همچنین می توانید تاریخ انقضا (در UTC time) اضافه کنید. به طور پیش فرض، وقتی مرورگر بسته می شود، کوکی حذف می شود:

ایجاد یک Cookie با جاوا اسکریپت

با یک پارامتر مسیر (path parameter)، می توانید به مرورگر بگویید که کوکی به کدام مسیر تعلق دارد. به طور پیش فرض، کوکی متعلق به صفحه فعلی است.

ایجاد یک Cookie با جاوا اسکریپت

خواندن یک کوکی با جاوا اسکریپت

با جاوا اسکریپت، کوکی ها را می توان به صورت زیر خواند:

خواندن یک کوکی با جاوا اسکریپت

document.cookie همه کوکی ها را در یک رشته بازمی گرداند مانند : ;cookie1=value; cookie2=value; cookie3=value

تغییر یک کوکی با جاوا اسکریپت

با جاوا اسکریپت، می توانید یک کوکی را به همان روشی که آن را ایجاد می کنید تغییر دهید:

تغییر یک کوکی با جاوا اسکریپت

کوکی قدیمی بازنویسی می شود.

حذف یک کوکی با جاوا اسکریپت

حذف یک کوکی بسیار ساده است. زمانی که یک کوکی را حذف می کنید، لازم نیست مقدار کوکی را مشخص کنید.

فقط پارامتر expires را روی تاریخ گذشته تنظیم کنید:

حذف یک کوکی با جاوا اسکریپت

برای اطمینان از حذف کوکی مورد نظر باید مسیر کوکی را تعریف کنید.

اگر مسیر را مشخص نکنید، برخی از مرورگرها به شما اجازه حذف یک کوکی را نمی دهند.

رشته کوکی (Cookie String)

ویژگی document.cookie شبیه یک رشته متنی معمولی است. اما اینطور نیست.

حتی اگر یک رشته کوکی کامل را در document.cookie بنویسید، وقتی دوباره آن را بخوانید، فقط می توانید جفت نام-مقدار آن را ببینید.

اگر کوکی جدیدی ست کنید، کوکی های قدیمی تر رونویسی نمی شوند. کوکی جدید به document.cookie اضافه شده است، بنابراین اگر document.cookie را دوباره بخوانید چیزی شبیه به آنچه که در زیر می بینید را دریافت می کنید:

;cookie1 = value; cookie2 = value

رشته کوکی (Cookie String)

اگر می خواهید مقدار یک کوکی مشخص شده را پیدا کنید، باید یک تابع جاوا اسکریپت بنویسید که مقدار کوکی را در رشته کوکی جستجو کند.

نمونه کوکی جاوا اسکریپت

در مثالی که در ادامه می آید، یک کوکی ایجاد می کنیم که نام یک بازدیدکننده را ذخیره می کند.

اولین باری که بازدیدکننده به صفحه وب می رسد، از او خواسته می شود نام خود را پر کند. سپس نام در یک کوکی ذخیره می شود.

دفعه بعد که بازدید کننده به همان صفحه می رسد، پیام خوش آمدگویی دریافت می کند.

برای این مثال 3 تابع جاوا اسکریپت ایجاد خواهیم کرد:

1 - تابعی برای تنظیم مقدار کوکی

2 - تابعی برای دریافت مقدار کوکی

3 - تابعی برای بررسی مقدار کوکی

تابعی برای ست کردن یک کوکی

ابتدا یک تابع ایجاد می کنیم که نام بازدید کننده را در یک متغیر کوکی ذخیره می کند:

مثال زیر را ببینید:

تابعی برای ست کردن یک کوکی

توضیح مثال داده شده:

پارامترهای تابع بالا عبارتند از نام کوکی (cname)، مقدار کوکی (cvalue) و تعداد روزهایی باقیمانده تا زمانی که کوکی باید منقضی شود (exdays).

این تابع با اضافه کردن نام کوکی، مقدار کوکی و رشته منقضی یک کوکی را ست می کند.

تابعی برای گرفتن یک کوکی

سپس، ما یک تابع ایجاد می کنیم که مقدار یک کوکی مشخص شده را برمی گرداند:

مثال زیر را ببینید.

تابعی برای گرفتن یک کوکی

توضیح تابع داده شده:

cookiename را به عنوان پارامتر در نظر بگیرید (cname) .

یک متغیر (name) با متن برای جستجو ایجاد کنید (cname + "=") .

رشته کوکی را رمزگشایی کنید تا کوکی ها با کاراکترهای خاص را مدیریت کنید، به عنوان مثال. '$'

document.cookie را در نقطه ویرگول به آرایه ای به نام ca (ca = decodedCookie.split(';')) تقسیم کنید.

از طریق آرایه ca حلقه بزنید (i = 0; i < ca.length; i++) و هر مقدار c = ca[i] را بخوانید.

اگر کوکی پیدا شد (c.indexOf(name) == 0)، مقدار کوکی را برگردانید (c.substring(name.length, c.length).

اگر کوکی پیدا نشد، "" را برگردانید.

تابعی برای بررسی یک کوکی

در آخر، ما تابعی را ایجاد می کنیم که بررسی می کند آیا یک کوکی ست شده است.

اگر کوکی تنظیم شده باشد، یک تبریک نمایش داده می شود.

اگر کوکی تنظیم نشده باشد، با فراخوانی تابع setCookie یک کادر اعلان نمایش می دهد که نام کاربر را می خواهد و کوکی نام کاربری را به مدت 365 روز ذخیره می کند:

مثال زیر را ببینید.

تابعی برای بررسی یک کوکی

همه با هم اکنون در قطعه کد زیر:

تابعی برای بررسی یک کوکی

مثال بالا تابع ()checkCookie را هنگام بارگیری صفحه اجرا می کند.

کوکی های جاوا اسکریپت ایجاد یک Cookie با جاوا اسکریپت خواندن یک کوکی با جاوا اسکریپت تغییر یک کوکی با جاوا اسکریپت حذف یک کوکی با جاوا اسکریپت Cookie String آموزش جاوا اسکریپت

مقالات این دسته بندی