Главная RSS Онлайн игры WarCraft Приколы Карта сайта О блоге Поиск Добавить пост Ваши посты
500 рублей помощь регистрации домена и на хосте и перенос сайта туда связь


+ Подписаться

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

Скачать


Web хранилище

0

Добавил: AlexMaster

Дата: 15.09.2016


Web хранилище - в HTML 5 появилась возможность сохранять локально информацию в своем браузере.

Ранее это реализовалось с помощью куки. Теперь мы можем использовать для хранения данных Web хранилище. Оно работает быстрее и безопаснее. В нем можно хранить большое количество данных и это не будет сказываться на производительности сайта. На стороне клиента данные мы можем хранить в двух объектах.

localStorage
- без ограничений по времени.
sessionStorage – в пределах работы сессии.
Перед тем как использовать localStorage или sessinStorage. Сделайте проверку на поддержку этой технологии в вашем браузере.

<!DOCTYPE HTML>
<html>
<head>
<title>Проверка технологии</title>
</head>
<body>
<script>
function main()
{
if(typeof(Storage)!=="undefined")
{
alert("localStorage и sessionStorage доступны.");
}
else
{
alert("Старый браузер.");
}
}
main();
</script>
</body>
</html>

Если все нормально, то должно выдать сообщение “localStorage и sessionStorage доступны”. Если выдает сообщение “Старый браузер”. То просто обновите браузер.
Объект localStorage хранит данные без ограничений по времени. Данные не будут удалены, если пользователь закроет браузер. В листинге 2 показана работа localStorage. В функции main создается тэг canvas и надпись счетчика. При каждом щелчке на canvas счетчик будет увеличиваться для этих целей предусмотрена функция mouseDown. В этой функции идет проверка ключа clickcount, если у ключа есть значение и оно, например, равно 10, то к этому значение прибавляется единица. Если нет, то создаем ключ и присваиваем к нему единицу. При каждом прибавлении единицы текстовое поле счетчика должно, обновляться. Для этого используем setInterval, он будет вызывать функцию update каждые 30 мс. Функция update будет заново рисовать текстовое поле. Функция clearRect будет очищать всю область canvas. Если её не использовать, то каждые 30 мс текстовое поле будет рисоваться поверх предыдущего текстового поля. Протестируйте код листинга 2, если вы закроете документ вместе с браузером и откроете заново, то последние данные clickCount сохранятся.
Пример Листинг 2.

<!DOCTYPE HTML>
<html>
<head>
<title>localStorage</title>
</head>
<body>
<script>
var count = 0;
var canvas, ctx;
function main()
{
canvas = document.createElement("canvas");
ctx = canvas.getContext("2d");
canvas.style.background = "#444444";
canvas.width = 300;
canvas.height = 340;
document.body.appendChild(canvas);
ctx.font = '24px Verdana';
ctx.fillStyle = '#fff';
ctx.fillText("Счетчик "+count, 80, 70);
canvas.addEventListener("mousedown", mouseDown);
}
function mouseDown(evt)
{
if (localStorage.clickcount)
{
localStorage.clickcount=Number(localStorage.clickcount)+1;
}
else
{
localStorage.clickcount=1;
}
}
setInterval(update,30);
function update()
{
ctx.clearRect(0,0,canvas.width,canvas.height);
if(localStorage.clickcount)
{
count = localStorage.clickcount;
}
ctx.fillText("Счетчик "+count, 80, 70);
}
main();
</script>
</body>
</html>

В листинге 2 было продемонстрировано, как можно без ограничений хранить данные. В листинге 3 будет показано, как хранить данные с помощью объекта sessionStorage. Данные хранятся на протяжении одной сессии и все данные пропадут, если закрыть браузер. Почти то же самое, что и в предыдущем примере, только вместо localStorage используется sessionStorage.
Пример листинг 3

<!DOCTYPE HTML>
<html>
<head>
<title>sessionStorage/title>
</head>
<body>
<script>
var count = 0;
var canvas, ctx;
function main()
{
canvas = document.createElement("canvas");
ctx = canvas.getContext("2d");
canvas.style.background = "#444444";
canvas.width = 300;
canvas.height = 340;
document.body.appendChild(canvas);
ctx.font = '24px Verdana';
ctx.fillStyle = '#fff';
ctx.fillText("Счетчик "+count, 80, 70);
canvas.addEventListener("mousedown", mouseDown);
}
function mouseDown(evt)
{
if (sessionStorage.clickcount)
{
sessionStorage.clickcount=Number(sessionStorage.clickcount)+1;
}
else
{
sessionStorage.clickcount=1;
}
}
setInterval(test,30);
function test()
{

ctx.clearRect(0,0,canvas.width,canvas.height);
if(sessionStorage.clickcount)
{
count = sessionStorage.clickcount;
}
ctx.fillText("Счетчик "+count, 80, 70);
}
main();
</script>
</body>
</html>

Скачайте файл с исходниками.

Назад

Просмотров: 164

Комментарий к этой заметки:

Добавить ваш камментарий:

Введите капчу

 

Яндекс.Метрика