کار با کوکی ها در جاوا اسکریپت
کوکی ها در واقع متغیرهایی هستند که در قالب یک فایل متنی ساده بر روی کامپیوتر کاربر ذخیره می شوند و در هر بار درخواست صفحه جدید از سرور با همان کامپیوتر، این فایل هم برای سرور فرستاده می شود. می توانیم ازکوکی ها برای ذخیره یکسری اطلاعات خاص کاربران صفحات استفاده کنیم و در صورت نیاز آن ها را در صفحات دیگر مورد استفاده قرار دهیم. در این فصل ابتدا پس از بررسی روش ایجاد کوکی ها در جاوا اسکریپت با روش های دسترسی و بازیابی مقادیر ذخیره شده در آن ها آشنا خواهیم شد.
ایجاد کوکی ها در جاوا اسکریپت
برای ایجاد کوکی ها در جاوا اسکریپت از خاصیت cookie شی document به شکل زیر استفاده می کنیم :
document.cookie="name=value ; expires=Date ; path = path ; domain=domain";
و برای بازیابی تمامی کوکی های از قبل ایجاد شده به شکل زیر عمل خواهیم کرد:
var x = document.cookie;
همانطور که در دستور ابتدایی می بینید برای ایجاد کوکی می بایست رشته ای حاوی یکسری خواص و مقادیرشان را در قالب جفت های name=value (که با ; از هم جدا شده اند) به خاصیت cookie نسبت دهیم. در جدول زیر هر یک از این قسمت ها را شرح می دهیم.
در مثال زیر یک کوکی با نام username و با مقدار ali که در تاریخ ۲۰۱۰/۰۲/۱۵ از بین می رود ایجاد می شود :
document.cookie = " username = ali ; expires = 15/02/2010 00:00:00 ";
در مثال زیر یک کوکی با نام myCookie و با مقدار this is my cookie ایجاد شده است :
document.cookie = “myCookie=” + escape(“This is my Cookie”);
نکته : در کد فوق تابع () escape ، یک رشته را دریافت کرده و تمامی کاراکترهای نامعتبر آن را به کد معادلش تبدیل می کند. قبل از کد معادل یک علامت % قرار می گیرد. به عنوان مثال این تابع کاراکتر space را به کد ۲۰ % تبدیل می کند. این تابع معادل تابع ()encodeURIComponent است.
حذف کوکی ها
برای حذف یک کوکی می توان از تابعی که زمان انقضای کوکی را به یک ثانیه قبل تنظیم می کند استفاده کنیم. این تابع به صورت زیر است :
function delete_cookie ( cookie_name ) { var cookie_date = new Date ( ); // current date & time cookie_date.setTime ( cookie_date.getTime() - 1 ); document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString(); }
حال کافی است برای حذف یک کوکی نام آن را برای تابع فوق بفرستیم. دستور زیر کوکی با نام username را حذف می کند:
delete_cookie ("username") ;
بازیابی کوکی ها
حال که با ایجاد و حذف کردن کوکی ها آشنا شدیم نحوه بازیابی (دسترسی) به آنها را بیان می کنیم. برای بازیابی کوکیهایی که قبلا ایجاد شده اند باز هم از خاصیت cookie شی document به صورت زیر استفاده می کنیم :
var x = document.cookie;
این دستور لیستی (رشته) از جفت های name=value تمامی کوکیهای قابل دسترس برای سند جاری را که با ; از هم جدا شده اند برمی گرداند. به عنوان مثال متغیر x می توانید حاوی رشته ای به صورت زیر باشد :
"username=ali; password=abc123"
در این مثال دو کوکی از قبل ایجاد شده است: یکی با نام username و مقدار ali و دومی با نام password با مقدار abc123
اکنون x یک متغیر رشته ای ساده است که می توانیم برای دسترسی به هر یک از کوکی ها و مقدارشان ابتدا x را بوسیله متد split شی string به آرایه ای تبدیل کرده و بوسیله متدهای خاص آرایه به آن ها دسترسی داشته باشیم. به عنوان مثال برای چاپ مقدار کوکی های فوق می توان به صورت زیر عمل کرد :
var allCookie = document.cookie; Var cookieParts = allCookie.split(";"); Var fistCookie = cookieParts[0]; Var secondCookie = cookieParts[1]; Var nameOfFirstCookie = firstCookie.split("=")[0]; Var valueOfFirstCookie = firstCookie.split("=")[1]; Var nameOfSecondCookie = firstCookie.split("=")[0]; Var valueOfSecondCookie = firstCookie.split("=")[1];
دیدگاه ها