保存变量值并在页面刷新后检索它

时间:2012-07-31 12:59:05

标签: javascript ajax

我有一个字符串值保存到变量中,我的网页会在某个过程后自动重新加载..我需要知道即使在页面刷新后我是否可以获取存储在该变量中的值?

我使用javascript代码window.location.reload()

刷新我的网页

如果我不接受像php这样的服务器端脚本,它会不会起作用?

6 个答案:

答案 0 :(得分:6)

<强> JavaScript的:

1)localStorage(仅限HTMl5浏览器) - 您可以将其保存为页面本地存储容量的属性

2)将其保存在cookie中

3)将变量附加到URL哈希,以便在刷新后通过location.hash检索它

<强> PHP

1)将其保存为会话变量,并在每次页面加载时通过AJAX检索

2)将它保存在一个cookie中(如果你要将它保存起来,也可以使用JS方法)

任何PHP方法都很笨重,因为你必须首先通过AJAX将变量的值发送到PHP脚本,然后在重新加载后通过AJAX检索它。

答案 1 :(得分:5)

您可以将其存储为$_SESSION变量。

session_start();

$myVar = null;

// some code here

if (!isset($_SESSION['myVar'])) {
    $_SESSION['myVar'] = "whatever";
} else {
    $myVar = $_SESSION['myVar'];
}

答案 2 :(得分:0)

您必须在Cookie / Webstorage / Session中保留此变量。网页是无国籍的。

答案 3 :(得分:0)

是的,您可以将服务器端的变量保存为session值,也可以保存在localstorage的客户端(或cookie

答案 4 :(得分:0)

Cookies是你的朋友:

// Set a cookie or 2
document.cookie = 'somevar=somevalue';
document.cookie = 'another=123';

function getCookie(name)
{
    // Cookies seperated by ;   Key->value seperated by =
    for(var i = 0; pair = document.cookie.split("; ")[i].split("="); i++)
        if(pair[0] == name)
            return unescape(pair[1]);

    // A cookie with the requested name does not exist
    return null;
}

// To get the value
alert(getCookie('somevar'));

答案 5 :(得分:0)

使用javascript,您可以将该变量存储到cookie中(用户必须启用cookie),然后在之后检索cookie。

方法是这样的:

保存

function setCookie(c_name,value)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + 1);
var c_value=escape(value);
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);
    }
  }
}

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