保存变量值并在页面刷新后检索它[重复]

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如何实现将一个通过计算出来的变量值,不刷新页面就可以将变量值显示在同一页面的文本框中?

用JS怎么实现刷新页面后保留刷新前的页面上的数据显示

JavaScript 获取发布请求后如何防止页面刷新?

html动态获取参数值并显示

刷新页面后可以用 Knockout JS 保存 ViewModel 的数据吗?

刷新页面并在之后运行函数 - JavaScript