5

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

我使用 javascript 代码刷新我的网页window.location.reload()

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

4

6 回答 6

7

JavaScript:

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

  2. 将其保存在 cookie 中

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

PHP

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

  2. 将其保存在 cookie 中(如果您要 cookie 也可以使用 JS 方法)

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

于 2012-07-31T13:03:02.793 回答
6

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

session_start();

$myVar = null;

// some code here

if (!isset($_SESSION['myVar'])) {
    $_SESSION['myVar'] = "whatever";
} else {
    $myVar = $_SESSION['myVar'];
}
于 2012-07-31T13:01:41.000 回答
0

您必须将此变量保存在 Cookie/Webstorage/Session 中。网页是无状态的。

于 2012-07-31T13:01:34.737 回答
0

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

于 2012-07-31T13:02:34.980 回答
0

饼干是你的朋友:

// 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'));
于 2012-07-31T13:04:27.290 回答
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

于 2012-07-31T13:04:29.527 回答