2015-03-09 3 views
0

Я пытаюсь сохранить рекорды игрока локального, на его компьютере. Я не знаю, возможно ли это, и на этом сайте я не нашел вопроса об этом. У меня просто есть var, который содержит число. Я хочу сохранить его на своем ПК, когда игрок снова сыграет в игре в своем браузере, и его рекорды все равно будут доступны.магазин var local на ПК с javascript

+0

К счастью, доступ к локальному хранилищу невозможен с помощью javascript. Вы должны попытаться сохранить свои результаты в базе данных или внутри некоторых файлов cookie, если вы на 100% уверены, что пользователь будет играть с тем же браузером с одного и того же ПК (в случае с файлом cookie) – briosheje

+0

, так что если это возможно с помощью файлов cookie , пожалуйста, дайте мне пример ;-) –

+4

Возможный дубликат [Хранение данных с javascript на компьютере клиента?] (http://stackoverflow.com/questions/3742811/data-storage-with-javascript-on-clients-computer) – Crowlix

ответ

3

localStorage не поддерживается старым браузером. поэтому используйте cookie как откат.

if(window.localStorage) 
    window.localStorage.setItem("highscore",1000); 
else 
    document.cookie="highscore=1000; expires=Thu, 31 Dec 2018 12:00:00 UTC"; 

для извлечения значения

function getCookie(cname) { 
var name = cname + "="; 
var ca = document.cookie.split(';'); 
for(var i=0; i<ca.length; i++) { 
    var c = ca[i]; 
    while (c.charAt(0)==' ') c = c.substring(1); 
    if (c.indexOf(name) == 0) 
     return c.substring(name.length,c.length); 
} 
return ""; 
} 
if(window.localStorage) 
    var highscore=window.localStorage.getItem("highscore"); 
else 
    var highscore=getCookie("highscore"); 
+1

localStorage работает в IE8, поэтому «старым» вы имеете в виду что-то вроде «10 лет», и в этом случае большой крик. лучше оставить эти старые туманы, чем замедлить загрузку страниц для каждого браузера с помощью файлов cookie ... тогда есть все правила ЕС о файлах cookie, которые, похоже, не применяются к localStorage ... – dandavis

+0

Это для меня ответ потому что это дает мне два решения: Thnx! –

+0

thnk.And cookie имеет то преимущество, что его можно обрабатывать и на стороне сервера. – balajisoundar

4

использование LocalStorage:

window.localStorage.score="20" // storing 

window.localStorage.score // getting the score again. 
+0

Возможно, стоит отметить, что 'localStorage' хранит только strinsg, поэтому, если вы хотите сохранить что-либо,' JSON.stringify' является вашим лучшим другом и извлекать его, 'JSON.parse'. Кроме того, я предпочитаю использовать 'localStorage.getItem' и 'localStorage.setItem', чтобы получить' null', когда он еще не существует (но), но это личное предпочтение, я думаю. – axelduch

0

Это немного странным, что нужно сделать, если мы не говорим о nodeJS хранения в файловой системе или какой-либо другой местный магазин (?).

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

, как говорится, это то, как вы сохраняете значение куки с помощью JavaScript:

document.cookie = "somekey = savedValue";

var readValue = document.cookie;

0

Вы можете также использовать Cookies, кроме localStorage.

var expDate=new Date(); 
var score=20; 
expDate.setDate(expDate.getDate()+365); // expiration after one year 

// Setting cookie 
document.cookie='score='+score+';expires='+expDate; 

// Retrieving the cookie 
var yourOldScore = document.cookie.match(/score=(.*?)\;/)[1]; 
Смежные вопросы