sessionStorage的成功使用

项目中遇到一个场景,index页面有多个入口,每个入口都可以进入主系统,但是需要带上入口id传给主系统里面的所有请求接口,并且进入主系统都是打开新窗口。难点在于如何把入口id传给打开的新窗口,并且会存在有多个新窗口主系统的存在。


入口界面.png

image.png
1. 首先系统中的fetch请求必须是公共方法
  • 因为我在项目中把所有fetch请求都写成一个公共方法,并且保存在一个名为common的JS文件中,所以我的思路是在打开的新窗口中,只要获取到一次id,并且传到common中的公共fetch方法,就可以实现需求。
2. 使用url的方式向新窗口传递index页面的入口id
  • 使用window.open("窗口地址+id"),然后在新窗口中使用window.location.href可以获取到id,并且使用一个公共方法传入fetch中,主系统中所有请求可以带上这个id,但是我发现当通过不同入口打开新窗口时,这个common中获取的id是通过最后入口获取的id,此时所有窗口主系统都是用同一个id,这样就达不到需求
3. 使用sessionStorage传递id
  • 在入口页面打开新窗口的同时,将入口id存入sessionStorage,在公共的fetch方法中获取id加入,就完美实现了需求
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 静态缓存 要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且使用HTML_CACHE_RULES配置...
    栾呱呱阅读 2,304评论 0 6
  • 参考资料文章 缓存 全称高速缓存(英文:cache,简称缓存)其原始意义是指访问速度比一般随机存取内存(RAM)快...
    胡萝卜樱阅读 672评论 0 0
  • 1. Infinispan是什么? 下述截自官方描述:Infinispan是基于Apache 2.0协议的分布式键...
    随安居士阅读 11,847评论 0 4
  • 什么是web缓存 所谓缓存就是再copy一份数据的副本(可能是html页面,图片,文件),根据副本的存放位置不同,...
    Diogoxiang阅读 306评论 0 1
  • 人生就是一列开往坟墓的列车, 路途上会有很多站口, 没有一个人可以至始至终陪着你走完, 包括亲人,友人,爱人。 你...
    运安阁阁主阅读 288评论 0 0