Cookies - витяг
Гюльчатай, відкрий личко!
Власне, сам процес отримання куків до неподобства простий:
Ось і все, спасибі за увагу ... :)
Жарт, звичайно ж. Так, ми отримали рядок з куками, але заковика в тому, що таким чином браузер віддає нам абсолютно все куки, встановлені поточним ресурсом. А саме, якщо стояла одна кука, cookieStr буде містити:
А ось якщо сайтом було встановлено кілька кук, то змінна cookieStr дещо змінить свій вигляд:
"CookieName1 = cookieValue; cookieName2 = cookieValue; cookieName3 = cookieValue;"
Ось тут-то і з'являється ряд міні-завдань, які потрібно вирішити, перш ніж дістатися до заповітної куки:
- куки необхідно структурувати, відокремити один від одного;
- знайти потрібну і вилучити її вміст
Якщо значення куки, в свою чергу, є також якимось переліком даних, то приблизно таку ж процедуру потрібно проробити і з ними:
- структурувати значення, відокремити один від одного;
- знайти потрібне
А тепер детальніше
Давай розберемо рядок з куками на запчастини. Для початку закладемо вихідні дані:
Першим етапом, розіб'ємо рядок на масив по разделителю ";", елементи якого будуть рядками і містити пару ключ = значення:
Тепер, потрібно обробити (привести до людського виду) кожну пару в цьому масиві:
В результаті маємо масив об'єктів, кожен з яких має метод name і value. У name міститься ім'я куки, value - упорядкований масив значень куки.
Тепер згадаємо, в ім'я чого ми все це затіяли ... Ах, так! Нам необхідно отримати значення конкретної куки. Трохи "причесати" код, отримаємо ось таку остаточну функцію:
Результатом роботи функції буде значення (масив значень) заданої куки, інакше, якщо кука була знайдена, функція поверне false. При виконанні функції без параметра cName, функція поверне масив всіх куків. Приклад виклику з параметром cName:
Ось, власне, і все з отриманням куки. Звичайно, ти, можливо, подумав: «Я б зробив не так.», - безсумнівно, але даний матеріал лише покликаний наочно продемонструвати і розкласти по поличках специфіку цього процесу, а як це реалізовувати - особиста справа кожного розробника.
Жити або не жити?
Якщо куку можна встановити, значить її можна і видалити! Так, логіка в порядку. А робиться це ... через установку:
з тією лише різницею, що для видалення, Кука потрібно виписати термін життя «заднім числом».
З усіх операцій з куками, найбільш трудомістким виявилося їх отримання, точніше розбір отриманих даних, хоча глибина розбору, звичайно ж, залежить від поставлених завдань. Наприклад, якщо сайт ставить одну єдину куку з одним значенням, то простіше дістати її значення, наприклад за допомогою методів об'єкта String (indexOf (), substr ()). Але і мати в своєму арсеналі універсальну функції по розбору куків, теж буде не зайвим.
У наступній статті спробуємо скласти "бабусин рецепт", щоб повісити на холодильник і користуватися ним. Інакше кажучи, об'єднаємо всі операції в один скрипт, щоб в подальшому, легко застосовувати його в своїх проектах.