۱۳۸۵/۰۷/۰۹

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

کوکی ها همیشه برایم مبحث جالبی بوده است. مطمئنا برای شما نیز جالب خواهد بود. از آنجائی که HTTP یک پروتکل stateless یا بدون حالت می باشد. یعنی اگر شما درخواستی را به سرویس دهنده بفرستید و شخص دیگری نیز همین در خواست را به سرویس دهنده ارسال کند، سرویس دهنده توان تشخیص اینکه کدام درخواست مربوط به چه کسی می باشد را ندارد و همه آنها را مانند هم پردازش می کند.
کوکی ها، نشست ها و ... برای کمک به تشخیص درخواست ها بوجود آمده اند. برای پردازش کوکی ها به دو تابع نیاز داریم. یکی برای نوشتن کوکی و دیگری برای خواندن کوکی. در زیر این دو تابع را مشاهده می نمائید:
[javascript]
function Set_Cookie(name, value, expires, path, domain, secure ) {
var today = new Date(); today.setTime( today.getTime() );
if ( expires ) { expires = expires * 1000 * 60; }
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";
expires=" + expires_date.toGMTString() : "" ) + ( ( path ) ? ";
path=" + path : "" ) + ( ( domain ) ? ";
domain=" + domain : "" ) + ( ( secure ) ? ";
secure" : "" ); return true;
}


function Get_Cookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}

if ( start == -1 )
return null;

var end = document.cookie.indexOf( ";", len );

if ( end == -1 )
end = document.cookie.length;

return unescape( document.cookie.substring( len, end ) );
}
[/javascript]

هر کوکی از 2 قسمت اصلی نام و مقدار تشکیل می شود. شرح متغیر های استفاده شده در توابع بالا در زیر آمده است:
name نام کوکی را مشخص می کند.
value مقدار کوکی را مشخص می کند. (بر حسب دقیقه)
expires عمر کوکی را مشخص می کند.
path آدرس فرعی که کوکی برای استفاده در آن نوشته می شود. معمولا همان روت یا همان / است.
domain آدرس دومینی سایت یا وبلاگی که کوکی در آن استفاده شده است.
secur به موضوع امنیت و ... مربوط است. نیازی به استفاده از آن نخواهید داشت.

حال برای مثال یک کوکی با نام MyUser و مقدار Guest و با عمر 10 دقیقه می خواهیم که بسازیم. کافیست کد زیر را در وبلاگ یا وب سایت خود قرار دهیم:

[html]
<script language="javascript" type="text/javascript">
Set_Cookie('MyUser', 'Guest', 10, '/', 'zebardast.ir');
</script>
[/html]

برای بدست آوردن مقدار این کوکی نیز کافیست از تابع ()Get_Cookie به صورت زیر استفاده کنید. در زیر مقدار کوکی با استفاده از document.write چاپ شده است:
[html]
<script language="javascript" type="text/javascript">
document.write(Get_Cookie('MyUser'));
</script>
[/html]

مبحث کوکی ها به همین سادگی شروع می شود ولی دارای پیچیدگی های خاصی است. کوکی در دیگر زبان ها مانند php عملکردی مشابه دارد. بزودی توضیحات کامل تری در مورد کوکی ها ارائه خواهد شد.

۱ نظر:

  1. سلام
    از اینکه این مطالب رو در اختیار ما می زارین بسیار متشکرم

    پاسخحذف