保存变量值并在页面刷新后检索它[重复]
Posted
技术标签:
【中文标题】保存变量值并在页面刷新后检索它[重复]【英文标题】:saving variable value and retrieve it after page refresh [duplicate] 【发布时间】:2012-07-29 06:03:40 【问题描述】:我有一个字符串值保存到一个变量中,我的网页在某个过程后自动重新加载。我需要知道即使在页面刷新后我是否可以获取存储在该变量中的值?
我正在使用 javascript 代码 window.location.reload()
刷新我的网页
如果我使用像 php 这样的服务器端脚本,它会起作用吗?
【问题讨论】:
【参考方案1】:JavaScript:
localStorage
(仅限 html5 浏览器)- 您可以将其保存为页面本地存储限额的属性
保存在 cookie 中
将变量附加到 URL 哈希中,以便在刷新后通过 location.hash
检索它
PHP
将其保存为会话变量,并在每次页面加载时通过 AJAX 检索它
将其保存在 cookie 中(如果您要 cookie 也可以使用 JS 方法)
任何 PHP 方法都会很笨拙,因为您必须首先通过 AJAX 将变量的值发送到 PHP 脚本,然后在重新加载后通过 AJAX 检索它。
【讨论】:
html5 浏览器在某种意义上我的浏览器是最新的..所以它应该可以工作,对吧? 在这种情况下localStorage
绝对是要走的路。
还有一件事..如何清除本地存储值??
设置:localStorage.setProperty()
;删除:localStorage.removeProperty()
【参考方案2】:
您可以将其存储为 $_SESSION
变量。
session_start();
$myVar = null;
// some code here
if (!isset($_SESSION['myVar']))
$_SESSION['myVar'] = "whatever";
else
$myVar = $_SESSION['myVar'];
【讨论】:
【参考方案3】:您必须将此变量保存在 Cookie/Webstorage/Session 中。网页是无状态的。
【讨论】:
【参考方案4】:是的,您可以在服务器端将变量保存为 session
值或在客户端保存为 localstorage
(或 cookie
)
【讨论】:
【参考方案5】: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'));
【讨论】:
【参考方案6】:使用 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
【讨论】:
mine 是一个简单的字符串,例如 "Market properties" .. 好的。您仍然可以为此使用 cookie以上是关于保存变量值并在页面刷新后检索它[重复]的主要内容,如果未能解决你的问题,请参考以下文章
js如何实现将一个通过计算出来的变量值,不刷新页面就可以将变量值显示在同一页面的文本框中?