نمایش نتایج 1 تا 2 از 2

نام تاپیک: راهنمایی برای درک بهتر کد زیر ( کوکی ها )

  1. #1

    راهنمایی برای درک بهتر کد زیر ( کوکی ها )

    سلام دوستان کد زیر از سایت W3schools است بخش کوکی من از سایت های دیگر کوکی یاد گرفتم ولی نمیدونم چرا ....

    اگر ممکن است کلا توضیح بدهید ممنون میشم توی این بخش مشکل دارم





    function getCookie(c_name)
    {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++)
    {
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name)
    {
    return unescape(y);
    }
    }
    }


    وکد زیر برای set کردن است

    function setCookie(c_name,value,exdays)
    {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
    }


  2. #2

    نقل قول: راهنمایی برای درک بهتر کد زیر ( کوکی ها )

    سلام

    در کد اول
    خط 3 : متغییرهای i,x,y,ARRcookies تعریف شده اند که در متغییر ARRcookies کوکی های آدرس فعلی (بصورت آرایه) قرار داده می شود.
    خط 4 : یک حلقه که به تعداد عناصر آرایه ی ARRcookies چرخ می زند
    خط 6 : در اولین عنصر آرایه ( اولین کوکی ) ، مقدار قبل از "=" در متغییر x قرار داده می شود ( نام کوکی )
    خط 7 : در اولین عنصر آرایه ، مقدار بعد از "=" در متغییر y قرار داده می شود ( مقدار کوکی )
    خط 8 : فضای خالی اول و آخر نام کوکی ( متغییر x ) حذف می شود
    خط 9 : اگر نام کوکی ( ورودی تابع ) برابر با متغییر x بود ، مقدار کوکی ( متغییر y ) بصورت decode شده بازگشت داده می شود و اجرای دستورات به پایان می رسد
    * اگر هیچ مقداری در شرط قبل یافت نشود ، مقدار undefined مقدار بازگشی از این تابع خواهد بود

    در کد دوم
    خط 3 : تاریخ فعلی سیستم در متغییر exdate ذخیره می شود
    خط 4 : تاریخ موجود در متغییر exdate به اندازه ی exdays به جلو تنظیم می شود
    خط 5 : مقدار encode شده ی متغییر value با ( اگر exdays نال بود ، "" و اگر نال نبود ، جمع رشته ی "; expires=" با مقدار exdate در فرمت UTC ) جمع می شود و در متغییر c_value قرار داده می شود
    خط 6 : مقدار متغییر c_name با "=" با c_name جمع می شود و به عنوان یک کوکی به عنوان کوکیِ آدرس فعلی اضافه می شود



    کد فوق زیاد صحیح و کامل نیست.

    بهتر هست از این کلاس استفاده کنید :


    var allCookies = {
    getItem: function (sKey) {
    if (!sKey || !this.hasItem(sKey)) { return null; }
    return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
    },
    setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
    if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return; }
    var sExpires = "";
    if (vEnd) {
    switch (vEnd.constructor) {
    case Number:
    sExpires = vEnd === Infinity ? "; expires=Tue, 19 Jan 2038 03:14:07 GMT" : "; max-age=" + vEnd;
    break;
    case String:
    sExpires = "; expires=" + vEnd;
    break;
    case Date:
    sExpires = "; expires=" + vEnd.toGMTString();
    break;
    }
    }
    document.cookie = escape(sKey) + "=" + escape(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
    },
    removeItem: function (sKey, sPath) {
    if (!sKey || !this.hasItem(sKey)) { return; }
    document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sPath ? "; path=" + sPath : "");
    },
    hasItem: function (sKey) {
    return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
    },
    keys: /* optional method: you can safely remove it! */ function () {
    var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
    for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = unescape(aKeys[nIdx]); }
    return aKeys;
    }
    };

تاپیک های مشابه

  1. پاسخ: 9
    آخرین پست: شنبه 25 آبان 1392, 21:35 عصر
  2. راهنمایی برای رفع خطا کد زیر
    نوشته شده توسط soonami در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 27 خرداد 1390, 15:07 عصر
  3. چند روش برای کد بهتر توصیه میکنم همه بخوانند!
    نوشته شده توسط SReza1 در بخش مقالات مرتبط با Delphi/Win32
    پاسخ: 1
    آخرین پست: جمعه 02 مرداد 1383, 10:31 صبح
  4. راهنمایی برای نوشتن select
    نوشته شده توسط ario در بخش VB.NET
    پاسخ: 4
    آخرین پست: سه شنبه 18 شهریور 1382, 06:47 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •