Главная RSS Онлайн игры WarCraft Приколы Карта сайта О блоге Поиск

“— Вы слышали, от Рабиновича сбежала жена?! — И как он? — Ну теперь он более или менее успокоился, а вначале был просто вне себя от радости.” - анекдот дня



Случайная картинка
Картинки Warcraft
Картинки Warcraft
Замки и дворцы
Замки и дворцы
Картинки архитектура
Картинки архитектура
Старинное оружие
Старинное оружие
Старинная мебель
Старинная мебель


0

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>

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

Перейти на главнуюВагон игр Назад

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

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

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

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

 

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