我有一个字符串值保存在一个变量中,我的网页在某个过程后自动重新加载。我需要知道即使在页面刷新后我是否可以获取存储在该变量中的值?
我使用 javascript 代码刷新我的网页window.location.reload()
如果不是,如果我使用像 php 这样的服务器端脚本,它会起作用吗?
我有一个字符串值保存在一个变量中,我的网页在某个过程后自动重新加载。我需要知道即使在页面刷新后我是否可以获取存储在该变量中的值?
我使用 javascript 代码刷新我的网页window.location.reload()
如果不是,如果我使用像 php 这样的服务器端脚本,它会起作用吗?
JavaScript:
localStorage
(仅限 HTML5 浏览器)- 您可以将其保存为页面本地存储限额的属性
将其保存在 cookie 中
将变量附加到 URL 哈希,以便location.hash
在刷新后可以通过它进行检索
PHP
将其保存为会话变量并在每次页面加载时通过 AJAX 检索它
将其保存在 cookie 中(如果您要 cookie 也可以使用 JS 方法)
任何 PHP 方法都会很笨拙,因为您必须首先通过 AJAX 将变量的值发送到 PHP 脚本,然后在重新加载后通过 AJAX 检索它。
您可以将其存储为$_SESSION
变量。
session_start();
$myVar = null;
// some code here
if (!isset($_SESSION['myVar'])) {
$_SESSION['myVar'] = "whatever";
} else {
$myVar = $_SESSION['myVar'];
}
您必须将此变量保存在 Cookie/Webstorage/Session 中。网页是无状态的。
是的,您可以将变量保存在服务器端作为session
值或在客户端localstorage
(或作为cookie
)
饼干是你的朋友:
// 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'));
使用 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);
}
}
}