会话存储

Session Storage

本文关键字:存储 会话      更新时间:2023-09-26

我正试图弄清楚如何使用我的网站的会话存储来传递和读取信息。

我需要sessionStorage将信息从我的商品销售页面传递到一个新的购买摘要页面,该页面将显示购买商品的列表、购买数量、每个商品的小计、所有购买商品的小计,购买税(7.4%)和购买总额。当商品销售页面正文中发生卸载事件时,应存储sessionStorage变量,当正文中发生加载事件时,采购摘要页面应读取sessionStorage变量。

通过session["Salesdata"]=SalesdataObj声明一个类似Salesdata的类来保存变量并将其存储在会话中;并通过Salesdata obj=(Salesdata)Session["Salesdata"]在另一个页面中检索

如何创建和存储Cookie:本例中的cookie将存储访问者的名称。访问者第一次访问网页时,会被要求填写自己的姓名。然后将名称存储在cookie中。下次访问者到达同一页面时,他或她将收到欢迎信息。

首先,我们创建一个函数,将访问者的名称存储在cookie变量中:

    function setCookie(c_name,value,exdays)
    {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : ";
    expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

上面函数的参数包含cookie的名称、cookie的值以及cookie过期的天数。

在上面的函数中,我们首先将天数转换为有效日期,然后添加cookie到期前的天数。之后,我们将cookie名称、cookie值和过期日期存储在document.cookie对象中。获取Cookie值

然后,我们创建另一个返回指定cookie值的函数:

function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
  {
  c_start = c_value.indexOf(c_name + "=");
  }
if (c_start == -1)
  {
  c_value = null;
  }
else
  {
  c_start = c_value.indexOf("=", c_start) + 1;
  var c_end = c_value.indexOf(";", c_start);
  if (c_end == -1)
  {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}

上面的代码使用indexOf()方法在文档的cookie字符串中搜索cookie名称。

第一个indexOf()方法将返回找到cookie的位置。添加了"+和+"=",这样方法就找不到包含该名称的名称或值。

如果该方法返回-1,则cookie可能仍然存在于cookie字符串的最开始。为了消除这种情况,添加了另一个搜索,这次没有"+。检查Cookie值

最后,我们创建了一个函数,如果设置了cookie,它会显示欢迎消息,如果没有设置cookie,它将显示一个提示框,询问用户的姓名,并通过调用setCookie函数将用户名cookie存储365天:函数checkCookie(){var username=获取

Cookie("username");
  if (username!=null && username!="")
  {
  alert("Welcome again " + username);
  }
else
  {
  username=prompt("Please enter your name:","");
  if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
  }
}

有关更多信息,请参阅:JavaScript Cookies

对于Sessionstorage,我使用sessionJS,它有助于更容易地读取、写入和删除Sessionstorage项。

看看:https://github.com/Bart-Holland/sessionJS

也许这对你也有帮助。

尽管您可能希望使用本地存储而不是会话存储。简而言之,区别在于当关闭浏览器时,您保留了本地存储,而会话存储将被删除。