如何通过JavaScript的sharedWorker实现跨页面高效通信的详细案例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1100个文字,预计阅读时间需要5分钟。
这是这样的,今天玩github,一开始是在没有登录浏览了一些页面,然后在某一个页面进行了登录。这时再切换到其他页面时,下面出现了提示:那么这是怎么做到的呢?我们可以想到一种办‘法’。
是这样的,今天玩github,先是在没有登录浏览了一些页面,然后在某一页面进行了登录。这时再切换的其他页面时就看到了下面的提示:
那么这是怎么做到的呢?我们可以想到,一种办法是 localStorage,在某一个页面登录时,修改localStorage 状态,其他页面在显示的时候,读取最新的状态,然后显示提示:
// 登录的页面 localStorage.setItem('login', true); // 其他页面 document.addEventListener("visibilitychange", function() { if (localStorage.setItem('login') === 'true') { alert('你已登录,请刷新页面'); } }
然而,github并没有这么做,localStorage里也找不到相关的字段,一番查找之后,发现他们是用 sharedWorker 实现的。那我们就来了解下sharedworker
什么是sharedWorker
sharedWorker 顾名思义,是 worker 的一种,可以由所有同源的页面共享。
本文共计1100个文字,预计阅读时间需要5分钟。
这是这样的,今天玩github,一开始是在没有登录浏览了一些页面,然后在某一个页面进行了登录。这时再切换到其他页面时,下面出现了提示:那么这是怎么做到的呢?我们可以想到一种办‘法’。
是这样的,今天玩github,先是在没有登录浏览了一些页面,然后在某一页面进行了登录。这时再切换的其他页面时就看到了下面的提示:
那么这是怎么做到的呢?我们可以想到,一种办法是 localStorage,在某一个页面登录时,修改localStorage 状态,其他页面在显示的时候,读取最新的状态,然后显示提示:
// 登录的页面 localStorage.setItem('login', true); // 其他页面 document.addEventListener("visibilitychange", function() { if (localStorage.setItem('login') === 'true') { alert('你已登录,请刷新页面'); } }
然而,github并没有这么做,localStorage里也找不到相关的字段,一番查找之后,发现他们是用 sharedWorker 实现的。那我们就来了解下sharedworker
什么是sharedWorker
sharedWorker 顾名思义,是 worker 的一种,可以由所有同源的页面共享。

