удаление куки в конце процесса - PullRequest
1 голос
/ 26 мая 2010

Я использую следующий плагин для файлов cookie в jQuery:

https://code.google.com/p/cookies/

Проблема, с которой я сталкиваюсь, связана не с плагином, а с тем, когда и как удалить cookie в конце процесса цитирования.

Сайт, на котором я пользуюсь, представляет собой шестиступенчатую онлайн-процедуру котировки и покупки.

К некоторым страницам применяется отслеживание места событий сериализации событий Omniture. Эта сериализация события должна включать имя события и случайное число, которое я создаю.

У меня есть универсальная функция для этого, которую я вызываю внизу страницы примерно так:

serialEvent('event21:', 'payment');

Вот функция:

function serialEvent(eventNumber, eventName) {
    var sessionID = jaaulde.utils.cookies.get('sessionID');             
    var remLength = 20 - eventName.length;  
    var remSession = sessionID.substr(sessionID.length - remLength, remLength);
    var eventName = eventName + remSession;
    s.events = eventNumber + eventName; 
    }

Мне нужно удалить файл cookie в конце процесса, страницу «Спасибо», но мне также нужен файл cookie «sessionID» для функции «serialEvent».

Поскольку функция вызывается внизу страницы, я должен просто написать удаление cookie после нее? Достаточно ли это надежно?

Мне нужно быть уверенным, что функция была успешно вызвана до удаления файла cookie.

Код для удаления куки довольно прост:

jaaulde.utils.cookies.del('sessionID');

Спасибо:)

Ответы [ 3 ]

1 голос
/ 26 мая 2010
function serialEvent(eventNumber, eventName)
{
    var ok = false;
    try
    {
        var sessionID = jaaulde.utils.cookies.get('sessionID');             
        var remLength = 20 - eventName.length;  
        var remSession = sessionID.substr(sessionID.length - remLength, remLength);
        var eventName = eventName + remSession;
        s.events = eventNumber + eventName; 
        ok = true;
    }
    catch(e)
    {
        // todo: error handling (what has gone wrong?)
        ok = false;
    }

    return ok;
}

Таким образом, вы можете узнать, правильно ли вызывается функция. ok будет истинно, только если вся функция выполнена правильно.

1 голос
/ 26 мая 2010

В функции serialEvent нет функции асинхронного или с задержкой по таймеру, поэтому вы можете либо

  • Поместите его в конец функции перед закрывающей скобкой, или
  • Поставь его после serialEvent('event21:', 'payment');.

Javascript выполняется синхронно, поэтому вы можете быть уверены, что cookie удаляется только по окончании работы с ним.

1 голос
/ 26 мая 2010

вы можете удалить cookie в конце процесса, а также в событии window.onUnload, чтобы убедиться, что cookie очищен, даже если вы закрываете окно до завершения процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...