JS: Гарантированная установка Cookie

Dec 24, 2009 17:39

В продолжение своих исследований 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, то она выбросит исключение, которое можно будет обработать.

setcookie, js, error, cookies, throw, javascript

Previous post Next post
Up