| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- let lastSrc // 上次获取的script地址
 
- const scriptReg = /<script.*src=["'](?<src>[^"']+)/gm
 
- /**
 
-  * 获取页面中的script
 
-  *
 
-  */
 
- async function extractNewScripts (url) {
 
-   const html = await fetch('/?_timestamp' + Date.now()).then((resp) => resp.text())
 
-   scriptReg.lastIndex = 0
 
-   const scripts = []
 
-   let match
 
-   while ((match = scriptReg.exec(html))) {
 
-     scripts.push(match.groups.src)
 
-   }
 
-   return scripts
 
- }
 
- /**
 
-  * 检测是否需要更新
 
-  */
 
- async function needUpdate () {
 
-   const scripts = await extractNewScripts()
 
-   if (!lastSrc) {
 
-     lastSrc = scripts
 
-     return false
 
-   }
 
-   let result = false
 
-   if (lastSrc.length !== scripts.length) {
 
-     result = true
 
-   }
 
-   for (let i = 0; i < lastSrc.length; i++) {
 
-     if (scripts[i] !== lastSrc[i]) {
 
-       result = true
 
-       break
 
-     }
 
-   }
 
-   lastSrc = scripts
 
-   return result
 
- }
 
- const DURATION = 3000
 
- export default function autoRefresh () {
 
-   setTimeout(async () => {
 
-     const willUpdate = await needUpdate()
 
-     if (willUpdate) {
 
-       const result = confirm('检测到有版本更新,是否刷新页面?')
 
-       if (result) {
 
-         location.reload()
 
-       }
 
-     }
 
-     autoRefresh()
 
-   }, DURATION)
 
- }
 
 
  |