کوکی ها در جاوا اسکریپت
کوکی یا cookie یک فایل متنی با حداکثر اندازه 4 کیلوبایت بوده که وب سایت ها برای ذخیره اطلاعاتی راجع به کاربر و فعالیتهای او، در مرورگر کاربر ذخیره می کنند. این فعالیتها می تواند شامل به خاطر سپردن لاگین کاربر در سایت مربوطه، علاقه مندهای کاربر، لیست خرید و یا هر چیز دیگری باشد. هنگامی که کاربر درخواست یک وبسایت خاصی را از طریق مرورگر خود می دهد تمام کوکی های متعلق به آن وبسایت همراه آن درخواست ارسال می گردند. در ادامه به مدیریت کوکی ها در جاوا اسکریپت می پردازیم.
ساخت کوکی
برای ایجاد یک کوکی در زبان جاوا اسکریپت به صورت زیر عمل می کنیم:
document.cookie = "name=value";
Name نام کوکی و value مقدار کوکی است. دستور زیریک کوکی با نام username و مقدار kamalmz ایجاد می کند:
document.cookie = "username=kamalmz";
ماندگاری کوکی
اما کوکی بالایی که تعریف کردیم به محض بستن صفحه وب، از بین می رود. برای ماندگار کردن کوکی برای مدت مشخصی از expires استفاده می کنیم.زمان ماندگاری باید برحسب GMT یا UTC بیان گردد :
document.cookie = "username=kamalmz; expires=Sat, 14 June 2014 12:00:00 GMT";
پس کوکی بالا تا تاریخ معین ماندگار خواهد بود حتی با بستن مرورگر هم از بین نخواهد رفت. در مثال زیر کوکی به مدت 1 روز یا 24*60*60 ثانیه معتبر خواهد بود :
var d = new Date();
d.setDate(d.getTime() + 24*60*60);
document.cookie = "username=kamalmz; expires=" + d.toGMTString();
حوزه عمل کوکی
تا اکنون تمام کوکی هایی که ساختیم تنها برای یک صفحه مشخص بود و تنها در آن صفحه قابل دسترس است برای اینکه کوکی را برای تمام صفحات ایجاد کنیم و در تمام صفحات سایتمان قابل دسترسی باشد از پارامتر path با مقدار / استفاده می کنیم :
document.cookie = "username=kamalmz; expires=Sat, 14 June 2014 12:00:00 GMT; path=/";
بازیابی کوکی
دستور زیر تمام کوکی های ساخته شده را نمایش می دهد.
document.cookie;
اگر دستور بالا را با alert خروجی دهیم، لیستی از آرایه هایی که ساختیم را نمایش می دهد:
cookie1=value; cookie2=value; …
کوکی ها با علامت ; از هم جدا می شوند.
برای بازیابی یک کوکی معین می توانیم از تابع زیر استفاده کنیم :
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == 0)
return c.substring(name.length,c.length);
}
return "";
}
حذف کوکی
برای حذف کوکی کافی است زمان اعتبار کوکی را برابر با یک زمان گذشته قرار دهیم :
document.cookie = "username=kamalmz; expires=Thu, 12 June 2014 12:00:00 GMT";
برای مطالعه بیشتر به سایت www.w3schools.com مراجه کنید.