一种多个标签页之间共享数据duke组的方法与流程

文档序号:15386260发布日期:2018-09-08 00:36阅读:998来源:国知局

本发明属于计算机软件技术领域,具体涉及一种多个标签页之间共享数据duke组的方法。



背景技术:

一些重要的系统会要求当用户关闭标签页时会话立刻到期,这些问题就使得我们在保存认证token时应使用内存或sessionstorage。sessionstorage的好处是它允许跨多个页面保存数据,并且也支持浏览器刷新操作。这样用户就可以在多个页面之间跳转或刷新页面而保持登录状态,我们将token保存在sessionstorage,并在每次请求服务器时将token放在请求头中来完成用户的身份认证。当用户关闭标签页,token会立即过期,但是sessionstorage不支持跨标签页共享数据,这就导致了一个很差的用户体验问题,用户经常希望打开多个标签页,因为token信息是保存在sessionstorage中,所以每次开启一个标签页都会要求用户重新登录。



技术实现要素:

本发明的目的在于:为了解决上述的用户在使用网页时每打开一个新的标签都会提示用户重新登录的问题,提出一种多个标签页之间共享数据duke组的方法。

本发明采用的技术方案如下:

一种多个标签页之间共享数据duke组的方法,所述方法包括如下步骤:

步骤1:当打开新标签页的时候,检测是否存在标签,若存在则出发时间通知已存在标签;

步骤2:已存在标签收到步骤1所述的通知,然后检测目前标签页的sessionstorage中是否存在token;

步骤3:根据步骤2的检测结果,若token存在则将token放入localstorage触发事件通知新打开的标签并且移除放入的token;若不存在则不做操作;

步骤4:打开新的标签,接到事件通知,拿到token放入sessionstorage。

打开一个标签页时候检测是否为第一个标签页,如果是则没有token共享,若不是则触发事件通知已存在标签,已存在标签接收到通知后检查目前标签页的sessionstorage中是否存在token,若存在则将token放入localstorage,触发事件通知新打开的标签并且移除放入的token,待新打开的标签接到事件通知后拿到token放入sessionstorage。通过此方法能实现多个标签页之前共享token信息,不用在没一次开启一个新标签页的时候都会要求用户重新登录。

优选地,所述步骤3中localstorage将请求数据储存在本地,其相当于一个大小5m的针对前端页面的数据库,可跨标签使用。利用localstorage事件提出了一种方案,新开一个标签页时,我们先来询问其它已经打开的标签页是不是有需要给我们共享的sessionstorage数据。如果有,现有的标签页会通过localstorage事件来传递数据到新打开的标签页中,我们只需要复制一份到本地sessionstorage即可。

优选地,所述步骤3中sessionstorage的传递不会保存在localstorage,从localstorage事件将数据中复制并保存到sessionstorage,这个流程是在同一个调用中完成,没有中间状态,而且数据是对应事件携带的,而不在localstorage中,数据随事件而携带不用储存在本地,能节约一定的内存空间的同时还能省去数据调用的过程,相应速率也得到的提高。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明中,将token存储于前端释放了服务器压力,利用sessionstorage储存token标签页关闭即可清除,不会当标签页关闭(甚至浏览器完全关闭)后还会持续存活一定时间,多个标签页之间共享sessionstorage没有中间状态。

2、本发明中,由于数据随事件而携带不用储存在本地,既能节约一定的内存空间的同时还能省去数据调用的过程,相应速率也得到的提高。

3、本发明中,sessionstorage数据的传递不是直接进行数据的搬移,而是对数据进行复制,这样即使过程中浏览器出现错误也不会造成数据的丢失,依然能再次从数据源复制数据到新标签页。

附图说明

图1为本发明的方法流程图;

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,一种多个标签页之间共享数据duke组的方法,所述方法包括如下步骤:

步骤1:当打开新标签页的时候,检测是否存在标签,若存在则出发时间通知已存在标签;

步骤2:已存在标签收到步骤1所述的通知,然后检测目前标签页的sessionstorage中是否存在token;

步骤3:根据步骤2的检测结果,若token存在则将token放入localstorage触发事件通知新打开的标签并且移除放入的token;若不存在则不做操作;

步骤4:打开新的标签,接到事件通知,拿到token放入sessionstorage。

打开一个标签页时候检测是否为第一个标签页,如果是则没有token共享,若不是则触发事件通知已存在标签,已存在标签接收到通知后检查目前标签页的sessionstorage中是否存在token,若存在则将token放入localstorage,触发事件通知新打开的标签并且移除放入的token,待新打开的标签接到事件通知后拿到token放入sessionstorage。通过此方法能实现多个标签页之前共享token信息,不用在没一次开启一个新标签页的时候都会要求用户重新登录。步骤3中localstorage将请求数据储存在本地,其相当于一个大小5m的针对前端页面的数据库,可跨标签使用。利用localstorage事件提出了一种方案,新开一个标签页时,我们先来询问其它已经打开的标签页是不是有需要给我们共享的sessionstorage数据。如果有,现有的标签页会通过localstorage事件来传递数据到新打开的标签页中,我们只需要复制一份到本地sessionstorage即可;sessionstorage的传递不会保存在localstorage,从localstorage事件将数据中复制并保存到sessionstorage,这个流程是在同一个调用中完成,没有中间状态,而且数据是对应事件携带的,而不在localstorage中,数据随事件而携带不用储存在本地,能节约一定的内存空间的同时还能省去数据调用的过程,相应速率也得到的提高。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。



技术特征:

技术总结
本发明公开了一种多个标签页之间共享数据duke组的方法,所述方法包括如下步骤:步骤1:当打开新标签页的时候,检测是否存在标签,若存在则出发时间通知已存在标签;步骤2:已存在标签收到步骤1所述的通知,然后检测目前标签页的sessionStorage中是否存在token;步骤3:根据步骤2的检测结果,若token存在则将token放入localstorage触发事件通知新打开的标签并且移除放入的token;若不存在则不做操作;步骤4:打开新的标签,接到事件通知,拿到token放入sessionStorage。将token存储于前端释放了服务器压力,利用sessionStorage储存token标签页关闭即可清除,不会当标签页关闭(甚至浏览器完全关闭)后还会持续存活一定时间,多个标签页之间共享sessionStorage没有中间状态。

技术研发人员:刘杰;吴洁慧;都柯
受保护的技术使用者:成都优易数据有限公司
技术研发日:2018.03.30
技术公布日:2018.09.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1