В продолжение своих исследований Cookies я решил сделать функцию, которая будет учитывать
ограничения которые накладывает браузер. Одна из проблем - то, что браузер молча выталкивает старые Cookies, а из-за этого могут пострадать важные данные и нарушиться работа веб-приложения.
Итак:
function setCookie(name, value, expires, path, domain, secure) {
if (document.cookie.split(';').length > 29) {
throw {
name: 'Cookie error',
message: 'Cookies count limit',
cookiename: name
}
} else {
if (escape(value).length > 3333) {
throw {
name: 'Cookie error',
message: 'This cookie is too big',
cookiename: name
}
} else {
document.cookie = name + "=" + escape(value) + ((expires) ? "; expires="
+ expires.toGMTString() : "") + ((path) ? "; path="
+ path : "") + ((domain) ? "; domain=" + domain : "")
+ ((secure) ? "; secure" : "");
}
}
}
Эта функция устанавливает Cookie, но если размер ее слишком велик или их уже более 29, то она выбросит исключение,
которое можно будет обработать.