Как остановить уничтожение переменной при нажатии F5 в JavaScript - PullRequest
2 голосов
/ 07 октября 2011

У меня есть следующий код

<html>
    <head>
        <script>
            var m=0;
            function add() {
                m++;
            }
        </script>
    </head>
    <body>
        <button onclick="add();">click</button>
    </body>
</html>  

Но если я обновляю страницу, тогда значение m снова начинается с 0. Как я могу сохранить значение m между каждой загрузкойстраница на клиентском компьютере?

Ответы [ 6 ]

3 голосов
/ 07 октября 2011

Один способ - это cookie

document.cookie = 'foo,bar'

Другой способ - использовать localalstorage

localStorage.setItem('foo', 'bar');
localStorage.getItem('foo'); // return 'bar'
2 голосов
/ 07 октября 2011

вы можете использовать куки из JavaScript. проверьте эту ссылку.

http://www.w3schools.com/js/js_cookies.asp

вот пример рабочего кода:

<html> 
<head> 
<script> 
var m=getCookie("m");
if(isNaN(m)) {
    m=0;
}
function add() 
{
    m++;
    alert(m);
    setCookie("m",m,86400);
} 

function setCookie(c_name,value,exdays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name)
    {
            return unescape(y);
        }
    }
}
</script> 
<body>
<button onclick="add();">click</button> 
</body> 
</html> 
1 голос
/ 07 октября 2011

Возможно, вам придется использовать:

  1. установка файлов cookie с помощью вашего бэкэнд-скрипта.
  2. использовать сессию в вашем скрипте. например, session_start, $ _ SESSION в PHP
  3. используйте localStorage, который будет работать только в браузерах, поддерживающих HTML 5.
1 голос
/ 07 октября 2011

На самом деле это то, что js значит делать в браузерах, не борись с этим, живи с этим. Если вы хотите хранить переменные в браузерах, тогда используйте куки или локальное хранилище (html5).

0 голосов
/ 07 октября 2011

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

0 голосов
/ 07 октября 2011

Вы не можете этого сделать. DOM и все переменные JS на вашей странице воссоздаются при обновлении. Если вы хотите сохранить его, вы можете использовать cookie или localalstorage , чтобы сохранить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...