JQuery настройка файла cookie проблема - PullRequest
1 голос
/ 18 ноября 2011

Я устанавливаю cookie на своей странице, используя этот плагин: https://github.com/carhartl/jquery-cookie

и из функции готовности моего документа я добавил это:

 $.cookie('checkCook', '2')

после того, как функция готовности моего документаЯ делаю некоторые вещи и устанавливаю для cookie значение null,

$(document).ready(function() {

    //setting the cokie

    if($.cookie('checkCook') == '2'){
        alert($.cookie('checkCook'));
         $.cookie('checkCook', null);
    }

})

Но пока я не получу предупреждение как '2', при каждом обновлении моего браузера.Что-то не так с этим?

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Если я правильно понимаю, у вас есть что-то вроде этого:

$(document).ready(function() {
    //setting the cokie
    if($.cookie('checkCook') == '2'){
        alert($.cookie('checkCook'));
        $.cookie('checkCook', null);
    }
});
$.cookie('checkCook', '2');

Что вы ожидаете, так это то, что ваш звонок на $.cookie('checkCook', null); удалит cookie, но при каждом обновлении страницы cookie сбрасывается на '2', а ваш звонок на $.cookie('checkCook', '2');.

Поскольку $.cookie('checkCook', '2'); находится за пределами вашей функции doc.ready, она вызывается, как только браузер нажимает на нее (запомните, страница загружается сверху вниз), и блок doc.ready задерживается до загрузки dom , Это означает, что код $.cookie('checkCook', '2'); выполняется перед блоком doc.ready. Вот почему вы всегда получаете предупреждение о том, что значение равно «2». Файл cookie получает set при каждом обновлении страницы и до вызова alert.

Что вы можете сделать, это обернуть код настройки cookie в функцию и вызвать его из doc.ready. Это приведет к задержке установки файла cookie до после выполнения кода предупреждения.

$(document).ready(function() {
    //setting the cokie
    if($.cookie('checkCook') == '2'){
        alert($.cookie('checkCook'));
        $.cookie('checkCook', null);
    }

    setCookie();
});

function setCookie()
{
    $.cookie('checkCook', '2');
}
1 голос
/ 18 ноября 2011

Файлы cookie удаляются, если установить время истечения срока действия.

$.cookie('checkCook', null, {expires: new Date(1)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...