Как мне установить / удалить cookie с помощью jQuery?

Класс memystream делает эту работу очень красиво для меня. Я не мог заставить класс буфера работать так же быстро, как memystream.

using (MemoryStream ms = new MemoryStream())
{
  ms.Write(BitConverter.GetBytes(22),0,4);
  ms.Write(BitConverter.GetBytes(44),0,4);
  ms.ToArray();
}
1181
задан Peter Mortensen 19 January 2018 в 16:33
поделиться

3 ответа

Вкратце:

Одним из решений является использование трансплантатов для соединения истории , затем используйте git filter-branch , чтобы перезаписать историю в соответствии с этими графтами, затем, при желании, выполните слияние .

Обратите внимание, что это решение для воспроизведения ваших изменений (ваших коммитов) поверх новая разработка в исходном репозитории (решение rebase ) - еще одно жизнеспособное решение.


Более длинная версия:

Предположим, вы либо помните, либо можете найти, изучив исходный код и / или используя команды git ревизию репозитория, снимок которой вы скачали, и начали локальную разработку. Назовем эту ревизию START или A.

Предположим, что ваша локальная история отключения находится в клоне исходного репозитория. Это означает, что ваша локальная отключенная разработка находится в том же репозитории, что и полная история проекта. Предположим, что ваши локальные ветки находятся в ветке 'master' (и для простоты есть только одна ветка).

Если вы не загрузили проект в репозиторий с вашей локальной отключенной работой, вы можете сделать это с помощью:

$ git remote add origin git://github.com/mojombo/mojombo.github.com.git
$ git fetch origin

История теперь выглядит следующим образом:

*---*---*---*---*---A---*---*---*---*      <--- origin/master (remote-tracking branch)

                                     x---y---*---*---*      <--- master (your local disconnected history)

Фиксация с именем A на диаграмме выше - это фиксация START, которую вы загрузили в качестве снимка и начали локальную разработку.

Есть две возможности: вы завершили снимок состояния 'A' как начальная фиксация 'x', или первая фиксация, которую вы сделали, была с вашими локальными изменениями.

В первом случае (вы зафиксировали исходное начальное состояние, например, как «Начальная фиксация» или «Импорт» используя графический браузер истории, такой как gitk, QGit или GitX, если вы используете MacOS X, или даже « git log --graph », или « git show-branch » , например:

$ gitk master origin/master    # or --all

(где gitk здесь только в качестве примера; если вы используете « git show branch », вы не всегда можете использовать параметр « - all »).

Наконец, мы, вероятно, захотим сделать эти изменения постоянными, чтобы любой, кто будет выполнять загрузку из нашего репозитория, также подключил бы историю. Мы можем сделать это с помощью git filter-branch :

$ git filter-branch master

У вас будет исходная (отключенная) история в 'refs / original / master'.

Теперь вы можете удалить файл графтов:

$ rm .git/info/grafts

Теперь вы можете объединить новые разработки для исходного репозитория:

$ git merge origin/master

Настройка конфигурации для каждой ветки,

var cookieValue = $.cookie("test");

Вы можете указать параметр пути, если файл cookie был создан на пути, отличном от текущего:

var cookieValue = $.cookie("test", { path: '/foo' });

ОБНОВЛЕНИЕ (апрель 2015 г.):

Как указано в комментариях ниже, команда, которая работала над исходный плагин удалил зависимость jQuery в новом проекте ( https://github.com/js-cookie/js-cookie ), который имеет те же функции и общий синтаксис, что и версия jQuery. Судя по всему, оригинальный плагин никуда не денется.

com / js-cookie / js-cookie ), который имеет те же функции и общий синтаксис, что и версия jQuery. Судя по всему, оригинальный плагин никуда не денется.

com / js-cookie / js-cookie ), который имеет те же функции и общий синтаксис, что и версия jQuery. Очевидно, оригинальный плагин никуда не денется.

1740
ответ дан 19 December 2019 в 20:16
поделиться

Нет необходимости использовать jQuery специально для управления файлами cookie.

Из QuirksMode (включая экранирующие символы)

function createCookie(name, value, days) {
    var expires;

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = encodeURIComponent(name) + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) === ' ')
            c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) === 0)
            return decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

Взгляните на

419
ответ дан 19 December 2019 в 20:16
поделиться

Вы можете использовать плагин, доступный здесь. .

https://plugins.jquery.com/cookie/

, а затем для записи файла cookie выполните $. Cookie ("test", 1);

для доступа к установленному cookie выполните $. Cookie ("test");

17
ответ дан 19 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: