Samouczek JS

JS DOM Wprowadzenie do JS JS Dokąd Wyjście JS Oświadczenia JS Składnia JS Komentarze JS Zmienne JS JS Let JS Const Operatorzy JS Arytmetyka JS Zadanie JS Typy danych JS Funkcje JS Obiekty JS Wydarzenia JS JS Strings Metody ciągów JS Wyszukiwanie ciągów JS Szablony JS String Numery JS Metody liczbowe JS Tablice JS Metody tablic JS Sortowanie tablic JS Iteracja tablicy JS JS Array Const JS Daty Formaty daty JS JS Data Pobierz metody Metody ustawiania daty JS Matematyka JS JS losowo JS Booleans Porównania JS Warunki JS Przełącznik JS Pętla JS dla Pętla JS dla In Pętla JS dla Of Pętla JS, podczas gdy Przerwa JS Iterable JS Zestawy JS Mapy JS Typ JS Konwersja typu JS JS Bitwise JS RegExp Błędy JS Zakres JS JS Podnoszenie Tryb ścisły JS JS to słowo kluczowe Funkcja strzałki JS Klasy JS JS JSON Debugowanie JS Przewodnik po stylu JS Najlepsze praktyki JS Błędy JS Wydajność JS JS słowa zastrzeżone

Wersje JS

Wersje JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Krawędź Historia JS

Obiekty JS

Definicje obiektów Właściwości obiektu Metody obiektowe Wyświetlanie obiektów Akcesoria do obiektów Konstruktorzy obiektów Prototypy obiektów Iterowalne obiekty Zestawy obiektów Mapy obiektów Odniesienie do obiektu

Funkcje JS

Definicje funkcji Parametry funkcji Wywołanie funkcji Wywołanie funkcji Funkcja Zastosuj Zamknięcia funkcji

Klasy JS

Wprowadzenie do zajęć Dziedziczenie klas Klasa statyczna

JS Async

Oddzwaniania JS Asynchroniczny JS JS Obietnice JS Async/Oczekiwanie

JS HTML DOM

Wprowadzenie do DOM Metody DOM Dokument DOM Elementy DOM DOM HTML Formularze DOM DOM CSS Animacje DOM Wydarzenia DOM Odbiornik zdarzeń DOM Nawigacja DOM Węzły DOM Kolekcje DOM Listy węzłów DOM

Zestawienie komponentów przeglądarki JS

Okno JS Ekran JS Lokalizacja JS Historia JS JS Navigator Wyskakujący alert JS Czas JS Pliki cookie JS

JS Web API

Wprowadzenie do internetowego interfejsu API Interfejs API formularzy internetowych Interfejs API historii online API przechowywania danych w sieci Web Web Worker API Internetowy interfejs API pobierania Internetowy interfejs API geolokalizacji

JS AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

JS JSON

Wprowadzenie do JSON Składnia JSON JSON a XML Typy danych JSON Analiza JSON JSON Obiekty JSON Tablice JSON Serwer JSON JSON PHP JSON HTML JSON JSONP

JS kontra jQuery

Selektory jQuery jQuery HTML jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS płótno JS Działka JS Chart.js Wykres JS Google JS D3.js

Przykłady JS

Przykłady JS JS HTML DOM Wejście JS HTML Obiekty HTML JS Wydarzenia JS HTML Przeglądarka JS Edytor JS Ćwiczenia JS JS Quiz Certyfikat JS

Referencje JS

Obiekty JavaScript Obiekty HTML DOM


Pliki cookie JavaScript


Pliki cookie umożliwiają przechowywanie informacji o użytkownikach na stronach internetowych.


Co to są pliki cookie?

Pliki cookie to dane przechowywane w małych plikach tekstowych na Twoim komputerze.

Gdy serwer sieciowy wyśle ​​stronę internetową do przeglądarki, połączenie zostaje przerwane, a serwer zapomina o wszystkim o użytkowniku.

Ciasteczka zostały wymyślone w celu rozwiązania problemu „jak zapamiętać informacje o użytkowniku”:

  • Kiedy użytkownik odwiedza stronę internetową, jego nazwa może być przechowywana w pliku cookie.
  • Przy następnej wizycie użytkownika na stronie plik cookie „zapamiętuje” jego nazwę.

Pliki cookie są zapisywane w parach nazwa-wartość, takich jak:

username = John Doe

Gdy przeglądarka żąda strony internetowej z serwera, pliki cookie należące do strony są dodawane do żądania. W ten sposób serwer uzyskuje niezbędne dane, aby „zapamiętać” informacje o użytkownikach.

Żaden z poniższych przykładów nie zadziała, jeśli Twoja przeglądarka ma wyłączoną obsługę lokalnych plików cookie.


Utwórz plik cookie za pomocą JavaScript

JavaScript może tworzyć, odczytywać i usuwać pliki cookie za pomocą document.cookie właściwości.

Za pomocą JavaScript można utworzyć plik cookie w następujący sposób:

document.cookie = "username=John Doe";

Możesz również dodać datę wygaśnięcia (w czasie UTC). Domyślnie plik cookie jest usuwany po zamknięciu przeglądarki:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

Za pomocą parametru path możesz poinformować przeglądarkę, do której ścieżki należy plik cookie. Domyślnie plik cookie należy do bieżącej strony.

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";


Przeczytaj plik cookie za pomocą JavaScript

Dzięki JavaScript pliki cookie można odczytać w następujący sposób:

let x = document.cookie;

document.cookiezwróci wszystkie ciasteczka w jednym łańcuchu, podobnie jak: ciasteczko1=wartość; cookie2=wartość; cookie3=wartość;


Zmień plik cookie za pomocą JavaScript

Za pomocą JavaScript możesz zmienić plik cookie w taki sam sposób, w jaki go tworzysz:

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

Stare ciasteczko zostanie nadpisane.


Usuń plik cookie za pomocą JavaScript

Usunięcie pliku cookie jest bardzo proste.

Nie musisz określać wartości pliku cookie podczas usuwania pliku cookie.

Wystarczy ustawić parametr wygasania na datę przeszłą:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

Powinieneś zdefiniować ścieżkę do pliku cookie, aby upewnić się, że usuniesz właściwy plik cookie.

Niektóre przeglądarki nie pozwalają na usunięcie pliku cookie, jeśli nie określisz ścieżki.


Ciąg ciasteczek

Właściwość document.cookiewygląda jak normalny ciąg tekstowy. Ale to nie jest.

Nawet jeśli napiszesz cały ciąg cookie do document.cookie, po ponownym odczytaniu zobaczysz tylko jego parę nazwa-wartość.

Jeśli ustawisz nowy plik cookie, starsze pliki cookie nie zostaną nadpisane. Nowe ciasteczko jest dodawane do document.cookie, więc jeśli ponownie przeczytasz document.cookie, otrzymasz coś takiego:

ciasteczko1 = wartość; cookie2 = wartość;

     

Jeśli chcesz znaleźć wartość jednego określonego pliku cookie, musisz napisać funkcję JavaScript, która wyszukuje wartość pliku cookie w ciągu cookie.


Przykładowy plik cookie JavaScript

W poniższym przykładzie utworzymy plik cookie, który przechowuje imię i nazwisko odwiedzającego.

Przy pierwszym wejściu na stronę internetową odwiedzający zostanie poproszony o podanie swojego imienia i nazwiska. Nazwa jest następnie przechowywana w pliku cookie.

Następnym razem, gdy odwiedzający dotrze na tę samą stronę, otrzyma wiadomość powitalną.

Na przykład stworzymy 3 funkcje JavaScript:

  1. Funkcja do ustawienia wartości cookie
  2. Funkcja do uzyskania wartości pliku cookie
  3. Funkcja sprawdzania wartości pliku cookie

Funkcja do ustawienia pliku cookie

Najpierw tworzymy plik function, który przechowuje nazwę odwiedzającego w zmiennej cookie:

Przykład

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  let expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

Przykład wyjaśniony:

Parametry powyższej funkcji to nazwa ciasteczka (cname), wartość ciasteczka (cvalue) oraz liczba dni do wygaśnięcia ciasteczka (exdays).

Funkcja ustawia ciasteczko poprzez dodanie nazwy ciasteczka, wartości ciasteczka i ciągu wygasającego.


Funkcja do uzyskania pliku cookie

Następnie tworzymy plik function, który zwraca wartość określonego ciasteczka:

Przykład

function getCookie(cname) {
  let name = cname + "=";
  let decodedCookie = decodeURIComponent(document.cookie);
  let ca = decodedCookie.split(';');
  for(let i = 0; i <ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

Wyjaśnienie funkcji:

Weź plik cookie jako parametr (cname).

Utwórz zmienną (nazwa) z tekstem do wyszukania (cname + "=").

Odkoduj ciąg cookie, aby obsłużyć pliki cookie ze znakami specjalnymi, np. „$”

Podziel document.cookie na średniki na tablicę o nazwie ca (ca = decodedCookie.split(';')).

Przeprowadź pętlę przez tablicę ca (i = 0; i < ca.length; i++) i odczytaj każdą wartość c = ca[i]).

Jeśli plik cookie zostanie znaleziony (c.indexOf(name) == 0), zwróć wartość pliku cookie (c.substring(name.length, c.length).

Jeśli plik cookie nie zostanie znaleziony, zwróć „”.


Funkcja sprawdzania plików cookie

Na koniec tworzymy funkcję, która sprawdza, czy plik cookie jest ustawiony.

Jeśli plik cookie jest ustawiony, wyświetli powitanie.

Jeśli ciasteczko nie jest ustawione, wyświetli okno z pytaniem o nazwę użytkownika i przechowuje ciasteczko z nazwą użytkownika przez 365 dni, wywołując setCookiefunkcję:

Przykład

function checkCookie() {
  let username = getCookie("username");
  if (username != "") {
   alert("Welcome again " + username);
  } else {
    username = prompt("Please enter your name:", "");
    if (username != "" && username != null) {
      setCookie("username", username, 365);
    }
  }
}

Teraz wszyscy razem

Przykład

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  let expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  let name = cname + "=";
  let ca = document.cookie.split(';');
  for(let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  let user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

Powyższy przykład uruchamia checkCookie()funkcję podczas ładowania strony.