欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUE項目自動檢測服務端是否發(fā)布了新版本

 更新時間:2025年01月02日 10:03:00   作者:Asurplus  
本文主要介紹了VUE項目自動檢測服務端是否發(fā)布了新版本,通過輪詢方式檢測Vue項目新版本并提示用戶刷新頁面,具有一定的參考價值,感興趣的可以了解一下

今天介紹的是通過輪詢的方式去檢測服務端是否發(fā)布了新版本,從而提醒客戶刷新頁面,提升用戶體驗。

1、實現思路

  • 使用輪詢的方式獲取項目中 index.html 文件。
  • 查詢文件引入的 JS 文件是否有更新( Vue 每次打包后會生成新的引入文件,如 login.513ef76d.js)。
  • 對比新舊文件,如果有不同,則說明服務器中的項目文件已經更新,需要提示用戶刷新頁面以獲取最新的項目資源。

2、實現步驟

在 src 目錄下新建一個 auto-update.js 文件,內容為:

let lastSrc;

// 匹配 Script 標簽中的 src
const scriptReg = /\<script.*src=["'](?<src>[^"']+)/gm;

/**
 * 提取服務器的 Script 標簽中的 src
 */
async function extractNewScripts() {
    const html = await fetch('/?_timestamp=' + Date.now()).then(resp => {
        return resp.text()
    })
    scriptReg.lastIndex = 0
    let result = []
    let match;
    while ((match = scriptReg.exec(html))) {
        result.push(match.groups.src)
    }
    return result
}

/**
 * 判斷是否有新版本
 */
async function hasNewVersion() {
    const newScripts = await extractNewScripts()
    if (!lastSrc) {
        lastSrc = newScripts
        return false
    }
    let result = false
    if (lastSrc.length !== newScripts.length) {
        result = true
    }
    for (let i = 0; i < lastSrc.length; i++) {
        if (lastSrc[i] !== newScripts[i]) {
            result = true
            break
        }
    }
    lastSrc = newScripts
    return result
}

/**
 * 自動更新定時器
 */
function autoRefresh() {
    setTimeout(async () => {
        const needUpdate = await hasNewVersion()
        if (needUpdate) {
            const result = confirm('項目發(fā)布新版本,立即更新?')
            if (result) {
                location.reload()
            }
        }
        autoRefresh()
    }, 5000)
}

autoRefresh()

在 main.js 文件中引入 auto-update.js 文件即可

import './auto-update'

3、測試

將項目打包發(fā)布,瀏覽器訪問項目

在這里插入圖片描述

改變項目中的頁面內容,重新打包發(fā)布

在這里插入圖片描述

點擊 “確定” 之后,頁面就會自動刷新了

到此這篇關于VUE項目自動檢測服務端是否發(fā)布了新版本的文章就介紹到這了,更多相關VUE 自動檢測服務端新版本內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue3項目中使用ECharts的方法步驟

    Vue3項目中使用ECharts的方法步驟

    這篇文章主要介紹了Vue3項目中使用ECharts的方法步驟,ECharts可以創(chuàng)建各種類型的圖表,比如折線圖、柱狀圖、餅圖等,配置選項還包括顏色、數據縮放、工具箱等,以實現豐富的圖表效果和交互功能,需要的朋友可以參考下
    2024-10-10
  • vue使用watch 觀察路由變化,重新獲取內容

    vue使用watch 觀察路由變化,重新獲取內容

    本篇文章主要介紹了vue使用watch 觀察路由變化,重新獲取內容 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • el-form-item?prop屬性動態(tài)綁定不生效問題及解決

    el-form-item?prop屬性動態(tài)綁定不生效問題及解決

    這篇文章主要介紹了el-form-item?prop屬性動態(tài)綁定不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue組件間傳遞數據的多種方法

    Vue組件間傳遞數據的多種方法

    在實際開發(fā)中,Vue組件之間的數據傳遞是最常見的需求,由于組件的作用域相互獨立,如何在父子、兄弟和跨級組件間傳遞數據就顯得尤為重要,本文將詳細介紹多種Vue組件間傳遞數據的方,需要的朋友可以參考下
    2025-03-03
  • 詳解vue項目打包后通過百度的BAE發(fā)布到網上的流程

    詳解vue項目打包后通過百度的BAE發(fā)布到網上的流程

    這篇文章主要介紹了將vue的項目打包后通過百度的BAE發(fā)布到網上的流程,主要運用的技術是vue+express+git+百度的應用引擎BAE。需要的朋友可以參考下
    2018-03-03
  • 在Vue 中使用Typescript的示例代碼

    在Vue 中使用Typescript的示例代碼

    這篇文章主要介紹了在Vue 中使用Typescript的示例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • vue打包上傳服務器加載提示錯誤Loading chunk {n} failed

    vue打包上傳服務器加載提示錯誤Loading chunk {n} failed

    這篇文章主要為大家介紹了vue打包上傳服務器加載提示錯誤Loading chunk {n} failed解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Vue-Router基礎學習筆記(小結)

    Vue-Router基礎學習筆記(小結)

    這篇文章主要介紹了Vue-Router基礎學習筆記(小結),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 如何實現echarts markline標簽名顯示自己想要的

    如何實現echarts markline標簽名顯示自己想要的

    這篇文章主要介紹了實現echarts markline標簽名顯示自己想要的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • axios向后臺傳遞數組作為參數的方法

    axios向后臺傳遞數組作為參數的方法

    今天小編就為大家分享一篇axios向后臺傳遞數組作為參數的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08

最新評論