Возможно ли, у меня есть какой-то список, и я хочу сохранить его в браузере, если это невозможно, что это эффективный способ сделать это?
Я хочу хранить массив Javascript в виде файла cookie
Ответ 1
JSON кодирует его, эффективно создавая строку типа "{name:'myname',age:'myage'}"
, которую вы помещаете в файл cookie, извлекаете при необходимости и декодируете обратно в массив/объект JavaScript.
Пример - сохранить массив в файле cookie:
var arr = ['foo', 'bar', 'baz'];
var json_str = JSON.stringify(arr);
createCookie('mycookie', json_str);
Позже, чтобы получить содержимое файла cookie как массив:
var json_str = getCookie('mycookie');
var arr = JSON.parse(json_str);
Примечание: функции cookie не являются собственными, взятыми из Как мне создать и прочитать значение из файла cookie?
Ответ 2
Одним быстрым способом является join()
ваш массив в одну строку с использованием соответствующего разделителя:
var a = [1, 2, 3, 4];
a.join('|'); // Returns: "1|2|3|4"
Затем просто используйте метод split()
, чтобы вернуть массив из строки cookie.
Ответ 3
Для каждого значения id в массиве попробуйте метод ниже, чтобы сохранить значение в массиве файлов cookie:
<script type="text/javascript">
/**
* set cookie
*/
function set_cookie(cookiename, cookievalue, hours) {
var date = new Date();
date.setTime(date.getTime() + Number(hours) * 3600 * 1000);
document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toGMTString();
}
set_cookie('item['+id+']', id, 24*365*10); // 10 years
</script>
И вы можете получить этот массив в php:
<?php
foreach($_COOKIE['item'] as $e){
echo $e,'<br />';
}
?>