Strona główna kursu

JavaScript - Cookie, ciasteczka

DZIAŁANIE:
Pokaż ciastka!
 

Kod:

Kurs JavaScript, Kurs Ajax, Kurs PHP

Ewentualne Objaśnienia:

Tutaj zajmiemy się obsługą cookie w JS. Nie będę bardzo szczegółowo omawiał czym są cookie poczytaj sobie o tym w kursie php [ tutaj oraz tutaj ] .
Zobaczmy na przykłady :
- okienko pyta nas o podanie imienia, następnie zmienna ciastko przyjmuje ciąg "Odwiedzajacy=escape(imie)" funkcja escape służy do zamienienia niedozwolonych znaków w cookie na inne (na przykład spacje na %20 itd.) . Funkcja unsescape to odwrotność tej funkcji. Dalej ustawiamy ciastko zapisem document.cookie = ciastko .
- teraz chcemy nasze ciastko odczytać i wyświetlić (jak wiemy ma ono postać "Odwiedzajacy=costam" więc wykorzystujemy znane już split do rozdzielenia tego co podane od słowa Odwiedzajacy. Korzystamy z unescape i wyświetlamy ciastko
- teraz chcemy zmienić nasze ciastko, więc musimy stworzyć po prostu takie samo ciastko, ale z inną wartością. Klikając na łącze widzisz, że ciastko zostało zmienione.
- dalej w komentarzach pokazałem jak w jednym ciastku można zapisać wiele informacji - użyłem znaków / do oddzielenia danych oraz znaków : aby oddzielić parametr od jego wartości. Wszystko to potem można odczytać i ładnie wyświetlić za pomocą znanych już narzędzi jak pętle, funkcje rozdzielające i tablice. Przyznacie jednak, że jest to dość nieciekawe i np. w PHP jest to o wiele wiele wygodniejsze
- dalej mamy przykład jak ustawić ciastko, ale z jakąś konkretną datą ważności (aby ciastko usunąć należy je 'utworzyć' z datą wstecz analogicznie jak w PHP). Cookie potrzebuje, aby podana do określenia czasu ważności była w formacie UTC i żeby datę przekształcić na ten format korzystamy z toUTCString . Do samego ciastka musimy jeszcze dodać parametr expires tak jak to pokazana na przykładzie (pamiętajcie o oddzielaniu parametrów cookie średnikiem)
- ostatni przykład to kolejne parametry ciastka path - ścieżka dostępu do cookie (najwyżej położony w hierarchii katalog, który może z danego cookie korzystać), zapis path:/; oznacza katalog główny, dla jakiegoś innego folderu byłoby to path=/katalog; , domain oznacza domenę z jakiej mamy dostęp do cookie.

W tym przykładzie utworzone zostały 2 cookie, które widzicie przez naciśnięcie łącza (3 nie widać bo domena jest wpisana domena.com). Jak widać ciastka to po prostu document.cookie zawierający dość skomplikowany ciąg, jeśli chcemy coś z tego wyciągnąć trzeba obsługiwać cały ten ciąg (każe ciastko) itd. Przyznacie, że jest to dość nie fajne.

Na szczęście istnieje takie coś jak biblioteki - poniżej prezentuje Wam kod biblioteki z serwisu WebMonkey (jest ona dobrze skomentowana, więc nie będę tego tłumaczył) :
Kurs JavaScript, Kurs Ajax, Kurs PHP