国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

中企動(dòng)力網(wǎng)站開發(fā)澎湃新聞

中企動(dòng)力網(wǎng)站開發(fā),澎湃新聞,網(wǎng)站建設(shè)中數(shù)據(jù)安全研究,去哪個(gè)網(wǎng)站可以做寫手業(yè)務(wù)場(chǎng)景:主項(xiàng)目是用vue寫的單頁面應(yīng)用,但是有多開頁面的需求,現(xiàn)在需要在用戶關(guān)閉了所有的瀏覽器標(biāo)簽頁面后,自動(dòng)退出登錄。 思路:因?yàn)槭遣煌膖ab頁面,我只能用localStorage來通信,新打開一個(gè)…

業(yè)務(wù)場(chǎng)景:主項(xiàng)目是用vue寫的單頁面應(yīng)用,但是有多開頁面的需求,現(xiàn)在需要在用戶關(guān)閉了所有的瀏覽器標(biāo)簽頁面后,自動(dòng)退出登錄。

思路:因?yàn)槭遣煌膖ab頁面,我只能用localStorage來通信,新打開一個(gè)標(biāo)簽頁(頁面初次裝載時(shí)),我就往數(shù)組中加一個(gè)頁面,在(頁面關(guān)閉或刷新等)頁面卸載時(shí)移除它。這樣就只需要在頁面裝載時(shí)(load事件)判斷當(dāng)前是不是刷新頁面就可以了,只要是其他來源就直接登出。

2024-01-06 22:23 更新:修改了頁面load事件,在頁面數(shù)組中無頁面時(shí),直接去登錄頁面了,但是還是得把頁面加入到頁面數(shù)組中,那個(gè)return沒有必要。這個(gè)return會(huì)導(dǎo)致進(jìn)入一個(gè)新設(shè)備(或者清空了瀏覽器緩存,即清空了currently_open_page)時(shí),未記錄當(dāng)前頁,那么頁面數(shù)組就是空的,導(dǎo)致打開新頁面時(shí)也直接去登出了。

代碼

import store from '@/store'const cache_key = 'currently_open_page'/*** 主方法,外部只要調(diào)用此方法就可以了*/
export function mount() {window.addEventListener('beforeunload', function () {const currentRoute = getCurrentPage()delPage(currentRoute)})window.addEventListener('load', function () {// 網(wǎng)頁通過“重新加載”按鈕或者location.reload()方法加載if (window.performance.navigation.type != 1) {// 如果頁面不是刷新進(jìn)來,不管是任何來源,都可以認(rèn)為是新進(jìn)入頁面,此時(shí)應(yīng)該就去登錄頁面if (!getCurrentOpenPageList().length) {store.dispatch('user/logout')}// return}// 添加新的頁面const currentRoute = getCurrentPage()addPage(currentRoute)})
}/*** 獲取當(dāng)前的頁面(tab頁面),目前就用時(shí)間值吧* @returns*/
function getCurrentPage() {if (!window._currentPage) {window._currentPage = 'page_' + new Date().getTime()}return window._currentPage
}/*** 獲取當(dāng)前已打開的頁面列表* @returns*/
function getCurrentOpenPageList() {const t = window.localStorage.getItem(cache_key)if (t) {return JSON.parse(t)} else {window.localStorage.setItem(cache_key, JSON.stringify([]))return []}
}/*** 往緩存中新增頁面*/
function addPage(page) {const list = getCurrentOpenPageList()list.push(page)window.localStorage.setItem(cache_key, JSON.stringify(list))
}/*** 往緩存中移除頁面*/
function delPage(page) {const list = getCurrentOpenPageList()const findIndex = list.indexOf(page)if (findIndex != -1) {list.splice(findIndex, 1)}window.localStorage.setItem(cache_key, JSON.stringify(list))
}/*** 清除所有的頁面*/
export function clearAllPage() {window.localStorage.setItem(cache_key, JSON.stringify([]))
}
http://aloenet.com.cn/news/46477.html

相關(guān)文章:

  • 朝城做網(wǎng)站公司杭州搜索推廣公司
  • 桂林網(wǎng)站制作培訓(xùn)班簡(jiǎn)單網(wǎng)站建設(shè)優(yōu)化推廣
  • 網(wǎng)站開發(fā)功能合同線上營(yíng)銷渠道主要有哪些
  • 搭建網(wǎng)站原理精準(zhǔn)客源
  • 購物網(wǎng)站的前臺(tái)功能網(wǎng)絡(luò)服務(wù)合同
  • .net 網(wǎng)站開發(fā)實(shí)例黃岡網(wǎng)站推廣策略
  • 做評(píng)測(cè)好的視頻網(wǎng)站有哪些北京seo關(guān)鍵詞優(yōu)化收費(fèi)
  • 做設(shè)計(jì)一般用什么素材網(wǎng)站會(huì)計(jì)培訓(xùn)班要多少錢
  • 建設(shè)銀行網(wǎng)站是多少錢成都網(wǎng)站優(yōu)化排名
  • 游戲類網(wǎng)站怎么做長(zhǎng)春模板建站代理
  • 廣州網(wǎng)站制作有什么平臺(tái)可以推廣
  • 一個(gè)網(wǎng)站按鈕怎么做今日頭條號(hào)官網(wǎng)
  • 什么網(wǎng)站可以用視頻做背景域名收錄查詢工具
  • 全國(guó)軟件公司排名seo還有用嗎
  • 做一個(gè)b2c網(wǎng)站網(wǎng)址關(guān)鍵詞查詢
  • 電信電信網(wǎng)站備案系統(tǒng)在線網(wǎng)站建設(shè)平臺(tái)
  • 北京產(chǎn)品網(wǎng)站設(shè)計(jì)哪家專業(yè)超級(jí)外鏈工具
  • 做網(wǎng)站的公司風(fēng)險(xiǎn)大不大濟(jì)南seo小黑seo
  • 網(wǎng)站回答問題app怎么做頭條發(fā)布視頻成功顯示404
  • 四川省紀(jì)委網(wǎng)站建設(shè)今日武漢最新消息
  • 西安網(wǎng)站建設(shè)云闊網(wǎng)絡(luò)熊掌號(hào)東莞seo報(bào)價(jià)
  • 便利的響應(yīng)式網(wǎng)站建設(shè)百度競(jìng)價(jià)什么意思
  • 長(zhǎng)治招聘網(wǎng)站建設(shè)百度推廣登錄平臺(tái)網(wǎng)址
  • 網(wǎng)站做記錄訪客百度貼吧網(wǎng)頁版
  • 網(wǎng)站子域名查詢?cè)趺醋?cè)中視頻賬號(hào)
  • 做網(wǎng)站購買備案域名app怎么推廣運(yùn)營(yíng)
  • 天津公司建設(shè)網(wǎng)站外貿(mào)獨(dú)立站怎么做
  • 東營(yíng)做網(wǎng)站公司東莞做網(wǎng)站公司首選
  • 網(wǎng)站建設(shè)教程培訓(xùn)做網(wǎng)站用什么軟件
  • 動(dòng)易醫(yī)院網(wǎng)站管理系統(tǒng)市場(chǎng)調(diào)研分析報(bào)告