0

У меня есть приложение, в котором у меня есть флажки для каждого элемента (конфигурации) из массива (configurationsArray). Что я хочу осуществить это добавить конфигурацию печенья магазин, когда флажок

Вот мой код

$scope.addProjectConfig = function(configuration, projectName) { 
      var configs = $cookieStore.get('projectsToCompare'); 
      if(!configs) { 
       $cookieStore.put('projectsToCompare', new Array()); 
       configs = $cookieStore.get('projectsToCompare'); 
      } 

      if(configuration.addedToCompare) { 
       var configObject = {projectName: projectName, configuration: configuration}; 
       configs.push(configObject); 
       $cookieStore.put('projectsToCompare', configs); 
      } 

      var configs1 = $cookieStore.get('projectsToCompare'); 
     }; 

Если вы видите в конце концов, я стараюсь, чтобы получить материал, я толкнул в CookieStore и он отлично работает.

Однако, когда установлен еще один флажок, и метод снова выполняется, я вижу, что значение, возвращаемое в начале, имеет пустой массив. Что я здесь делаю неправильно? Любые указатели глубоко оценены.

ответ

1

Возможна одна из причин, по которой вы наблюдаете, размер вашего файла cookie больше, чем ограничение размера файла cookie для вашего браузера.

Подробнее о размерах печенья here & here.

Выдержки из второго звена

В соответствии с RFC 2109, веб-куки не должны быть ограничены пользователем агентами. Но минимальные возможности браузера или пользовательского агента должны быть не менее 4096 байт на файл cookie. Этот предел применяется только к файлу name = value только cookie.

Это означает, что если вы пишете файл cookie, а файл cookie меньше 4096 байт, то он будет поддерживаться каждым браузером и пользовательским агентом , который соответствует RFC.

ограничения Cookie Размер для различных браузеров

  • Internet Explorer 8 разрешено печенье до 4095 байт
  • Chrome 9 допускается печенье до 4096 байт
  • Opera 11 разрешено печенье до 4096 байт
  • Firefox 3.6.3 разрешенные файлы cookie до 4097 байт
  • Safari 5 разрешенных коучин до 4097 байт

Вы можете проверить свой браузер предельного размера печенья, перейдя на эту link и нажав

Run тестов для текущего браузера

Так что, если это действительно так, то вам нужно, чтобы снизить размер файла cookie. Если вы не хотите этого делать и полагаете, что работаете в HTML5, есть и другие простые способы решения этой проблемы.

Если вы хотите, чтобы сохраняться данные только для этой сессии, используйте sessionStorage еще использовать LocalStorage.Узнайте больше о sessionStorage и localStorage here

+0

Это оказалось моим решением! Просто пришлось разделить мои данные на несколько файлов cookie. Я по существу сделал небольшую услугу, чтобы вытащить все файлы cookie обратно в одну переменную области видимости, а также сохранить через обратную сторону, взяв единую область и разбив ее на несколько файлов cookie. Отличная находка! – Austin

Смежные вопросы