在resfresh、javascript之后保持全局变量的活力

keep global variables alive after resfresh, javascript

本文关键字:全局变量 resfresh javascript 之后      更新时间:2023-09-26

场景:

假设我们有一个应用程序,它的工作原理如下:

 Header
 Content
 footer

Header和Footer是静态的,content是一个div,通过ajax调用它来加载特定的视图。

因此,基本上,我们的第一个视图是登录,在调用登录控件后,我们会得到一个列表,并在应用程序中移动,而不更改链接结构会导致ajaxdiv内容调用。

问题:

当我们刷新时,我们会返回登录页面,而不是主视图,主视图显示登录控制器答案附带的所有选项。我试图将这些选项保留在一个全局变量中,但刷新后,所有数据都会被删除,即使会话处于活动状态(通过会话cookie(,我也无法返回主视图,只有当我再次发送用户和密码时,我才能返回,但我无法返回。最终,将用户和密码存储到cookie中不是一种选择。

有什么建议可以解决这个问题吗?

您可以使用DOM存储在重新加载之间存储全局变量的值。

DOM存储是客户端的密钥/值存储。

localStorage.setItem('key', value);
value = localStorage.getItem('key');

有两种变体:

  1. sessionStorage,这将存储用户会话的时间值
  2. localStorage,这将在会话之间保留数据

如果你必须支持古老的浏览器,你可以在重新加载之间使用cookie来存储值。