|
Сохранение в куках переменной
Доброго времени суток всем!
Я использую скрипт который генерирует рандомный набор из 6 печатных символов (например - 86yz4b):
function str_rand() {
var result = '';
var words = '1234567890qwertyuioplkjhgfdsazxcvbnm';
var max_position = words.length - 1;
for( i = 0; i < 6; ++i ) {
position = Math.floor ( Math.random() * max_position );
result = result + words.substring(position, position + 1);
}
return result;
}
В дальнейшем мне необходимо использовать этот набор символов (все те же - 86yz4b) в качестве переменной для некоторых функций, даже после обновления страницы пользователем. Для этого, мне необходимо записать в куки эту переменную (всё ту же - 86yz4b). Я некогда раньше не работал с куками, сегодня весь день провел в активном гуглеже по данной теме, нашел массу информации по работе с куками, но нечего даже издали приближенного к своей потребности не нашел. Пожалуйста поделитесь своим опытом и знаниями в данной сфере!) |
откройте для себя мир localStorage
|
Большое спасибо за совет. Но я очень прошу помочь мне именно с моим вопросом, на счет записи в куки. Почему? Потому что мне необходимо использовать именно куки + способ записи информации что в куки что в локальные хранилища очень похож, а я как раз с ним не могу разобраться. Заранее спасибо
|
Смотрите учебник по cookie
Что непонятно спрашивайте |
вариант "Непонятно все", подойдет?)
Я шучу конечно же. Дело в том что я вчера весь день ковырял различное множество статей и ту что вы мне скинули в том числе. В результате я пришел к выводу что работа с куками на чистом js очень усложнена, что неоправданно в моем случае по скольку мне не нужно то многообразие параметров которое прилагает чистый js. По этому я решил пойти по упрощенному пути и воспользоваться библиотекой jquery.cookie.js. В результате у меня получилась конструкция:
$(function() {
<!-- Скрипт который создает имя переменной (например - 86yz4b) -->
function str_rand() {
var result = '';
var words = '1234567890qwertyuioplkjhgfdsazxcvbnm';
var max_position = words.length - 1;
for( i = 0; i < 6; ++i ) {
position = Math.floor ( Math.random() * max_position );
result = result + words.substring(position, position + 1);
}
return result;
}
<!-- EXIT Скрипт который создает имя переменной (например - 86yz4b) -->
<!-- Создание куки -->
$.cookie('name', value, {
expires: 2,
path: '/'
});
if (!$.cookie('namel')) {
// если куки не было, то объявить "var" и задать ему значение которое с генерировал выше переведенный скрипт (например - 86yz4b)
} esle {
// если кука есть, то записать в её "value" все тоже значение которое с генерировал выше переведенный скрипт (например - 86yz4b), что бы при повторных сессиях (пока существует кука) можно было использовать именно его (86yz4b), то есть то значение которое было получено при первом заходе человека на страницу
}
<!-- EXIT Создание куки -->
});
Проверки и дальнейший алгоритм я понимаю как осуществить, а вот что касается того как мне записать значение (например - 86yz4b) в "value" самой куки, я разобраться не могу. |
smart-create,
весь код ...
function str_rand() {};
var result = localStorage.getItem('result') || str_rand();
localStorage.setItem('result', result );
|
А значение в localStorage не будет перезаписываться с каждым выполнением функции str_rand() ?
Я имею в виду что мне нужно что бы function str_rand() {} один раз с генерировала рандом, он записался в localStorage и в течении некоторого времени брался от туда, в независимости от того что function str_rand() {} и дальше будет продолжать генерировать эти рандомы |
smart-create,
а проверить самому? значение result в 4 строке, после перезагрузки |
рони,
Дело в том что я изначально пытался решить эту задачу самостоятельно, в итоге уже второй день мучаюсь и не могу разобраться. Я уже сталкивался, вчера с localStorage, но решил что этот вариант для меня не подходит, потому как я не нашел способ избежать перезаписи значения в нем при следующем выполнении function str_rand() {}. По этому и интересуюсь, у самого уже каша в голове. Могли бы вы еще уточнить что имеете в виду: "значение result в 4 строке, после перезагрузки", - я к сожалению не совсем понял |
smart-create,
function str_rand() {};
var result = localStorage.getItem('result') || str_rand();
localStorage.setItem('result', result );
alert(result )
|
| Часовой пояс GMT +3, время: 23:32. |
|