我有一个字符串值保存到变量中,我的网页会在某个过程后自动重新加载..我需要知道即使在页面刷新后我是否可以获取存储在该变量中的值?
我使用javascript代码window.location.reload()
如果我不接受像php这样的服务器端脚本,它会不会起作用?
答案 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);
}
}
}