2010-05-26 4 views
1

J'utilise la fiche suivante pour les cookies dans jQuery:suppression de cookies à la fin d'un processus

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

La question que j'ai est pas avec le plug-in, mais quand et comment supprimer le cookie à la fin d'un processus de devis.

Le site que j'utilise est un processus de devis et d'achat en ligne en six étapes.

Il existe un suivi sitestat de sérialisation d'événement Omniture appliqué à certaines pages. Cette sérialisation d'événement doit inclure le nom de l'événement et un nombre aléatoire que je crée.

J'ai une fonction générique pour ce que j'appelle au bas de la page comme ceci:

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

est la fonction ici:

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; 
    } 

Je dois supprimer le cookie au fin du processus, la page Merci mais j'ai aussi besoin du cookie 'sessionID' pour la fonction 'serialEvent'.

Comme la fonction est appelée au bas de la page devrais-je juste écrire le cookie supprimer après? Est-ce assez robuste?

Je dois être sûr que la fonction a été appelée avec succès avant la suppression du cookie.

Le code pour supprimer le cookie est assez simple:

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

Merci :)

Répondre

1

Il n'y a pas des fonctions de rappel asynchrone ou retardée temporisateur appelé en fonction serialEvent de sorte que vous pouvez

  • Mettre à la fin de la fonction avant le support de fermeture, ou
  • Mettez-après serialEvent('event21:', 'payment');.

Javascript s'exécute de manière synchrone, de sorte que vous pouvez être sûr que le cookie n'est supprimé que lorsque vous avez terminé.

1

vous pouvez supprimer le cookie à la fin du processus, ainsi que dans l'événement window.onunload pour se assurer que le cookie est effacé même si vous fermez la fenêtre avant la fin du processus.

1
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; 
} 

De cette façon, vous pouvez savoir si la fonction est appelée correctement. ok ne sera vrai que si toute la fonction est exécutée correctement.

Questions connexes