当前位置: 首页 > news >正文

孝感 商务 网站建设竞价网络推广培训

孝感 商务 网站建设,竞价网络推广培训,快速做网站公司报价,东莞外贸网站以下只是一些思路,有更好的实现方式可以留言一起交流学习 方式一:纯前端 在每次发布前端时,使用webpack构建命令生成一个json文件,json中写个随机生成的一个字符串(比如时间戳),每次打包程序都…

以下只是一些思路,有更好的实现方式可以留言一起交流学习

方式一:纯前端
在每次发布前端时,使用webpack构建命令生成一个json文件,json中写个随机生成的一个字符串(比如时间戳),每次打包程序都会自动更新这个json文件。
在项目中,通过定时任务或者在切换页面路由时,请求json文件。使用本地保存的上一次生成的字符串和json文件中的字符串进行比较,如果两个字符串不一样,则说明前端重新部署了,提醒用户进行更新或进行强制刷新的操作。

方式二:前后端配合
在每个请求的header里面加上发版版本号,和保留在客户端的上一次版本号进行比较,如果不一致则强制刷新,刷新后保存当前版本号。(或者单独写一个返回版本号的接口)

下面重点说一下纯前端如何做:

①webpack构建 生成一个json文件,在项目目录下新建plugin文件夹,新建version-webpack-plugin.js如下

/** 自定义的插件: 生成版本号json文件 */
const fs = require("fs");
class VersionPlugin {apply(compiler) {// emit 是异步 hook,使用 tapAsync 触及它,还可以使用 tapPromise/tap(同步)compiler.hooks.emit.tap("Version Plugin", (compilation) => {const outputPath = compiler.path || compilation.options.output.path;const versionFile = outputPath + "/version.json";const timestamp = Date.now(); // 时间戳作为版本号const content = `{"version": "${timestamp}"}`;/** 如果路径存在则返回 true,否则返回 false。 */if (!fs.existsSync(outputPath)) {// 同步地创建目录。 返回 undefined 或创建的第一个目录路径(如果 recursive 为 true)。 这是 fs.mkdir() 的同步版本。fs.mkdirSync(outputPath, { recursive: true }); }// 生成json文件fs.writeFileSync(versionFile, content, {encoding: "utf8",flag: "w",});});}
}module.exports = { VersionPlugin };

②在vue.config.js中使用者个 plugin

const { VersionPlugin } = require('./plugin/version-webpack-plugin.js');

③在每次执行webpack构建命令,都会在dist目录下生成一个version.json文件,里面有一个字段叫 version,值是构建时的时间戳,每次构建都会生成一个新的时间戳。

④发起ajax请求,请求version.json文件获取version时间戳,和本地保存的上一次的时间戳做比较,如果不一样,则进行对应的操作。

import axios from 'axios'
import {MessageBox} from 'element-ui'
export function reloadVersion() {axios.get(window.location.origin + '/plm/version.json?v=' + Date.now()).then(rsp => {let localVersion = localStorage.getItem('localVersion')let onlineVersion = rsp.data.versionif(onlineVersion){if(localVersion!==onlineVersion){// 弹框提示更新MessageBox.confirm('有版本更新,是否刷新确保获取最新数据?', '版本更新', {confirmButtonText: '更新',cancelButtonText: '取消',type: 'warning'}).then(() => {// 发版版本号和本地版本号不一致,保存最新的版本号到本地,并刷新页面获取最新的页面localStorage.setItem('localVersion',onlineVersion)window.location.reload();})}}})
}

⑤请求发起的时机,可以使用定时器或者在切换页面的时候进行校验版本。根据自己的实际情况选择合适的调用时机。 

(二)通过监听网页端的报错,进行相应的处理。

如果是覆盖式的更新,有可能发版前就已经删除了上一个版本的dist文件,会造成缓存的页面依然调用已经被删除的文件,所以会白屏报错。报错就有可能不会执行到上面发起请求获取版本号的操作。所以如果监听到如下的几种报错,可以进行刷新页面的操作,

在index.html根目录文件中加入如下代码。为了防止页面一直刷新,所以加了一个超过次数就不再继续刷新的逻辑

  <script>// 错误监听window.addEventListener('error', (e) => {console.log('globalError'+e)// 类似manifest.js和app.js等静态资源报错if(e.target.outerHTML.indexOf('js/manifest.') != -1 || e.target.outerHTML.indexOf('js/app.') != -1|| e.target.outerHTML.indexOf('js/chunk-') != -1){var errorTime = sessionStorage.getItem('mainAppErrorTime')if(errorTime&&errorTime>0){errorTime++} else{errorTime = 1}var timer = setTimeout(function() {// 错误次数存在缓存,刷新超过3次不会继续刷新。退出页面重进后,次数重置sessionStorage.setItem('mainAppErrorTime', errorTime)window.location.reload()}, 1000);if(errorTime&&errorTime>=3){clearTimeout(timer) // 清空定时器}}}, true);</script>


文章转载自:
http://dinncomiscellany.ydfr.cn
http://dinncoblepharitis.ydfr.cn
http://dinncocoleus.ydfr.cn
http://dinncofluter.ydfr.cn
http://dinncotivy.ydfr.cn
http://dinncospae.ydfr.cn
http://dinncoillusive.ydfr.cn
http://dinncoparasitic.ydfr.cn
http://dinncofurfur.ydfr.cn
http://dinncokaif.ydfr.cn
http://dinncoaapss.ydfr.cn
http://dinncowiredrawn.ydfr.cn
http://dinncosawdust.ydfr.cn
http://dinncorewind.ydfr.cn
http://dinncomarcobrunner.ydfr.cn
http://dinncolaryngotracheitis.ydfr.cn
http://dinncocertify.ydfr.cn
http://dinncoquasimodo.ydfr.cn
http://dinnconowhere.ydfr.cn
http://dinncomorphine.ydfr.cn
http://dinncositting.ydfr.cn
http://dinncouricase.ydfr.cn
http://dinncoquadricornous.ydfr.cn
http://dinncovaricellate.ydfr.cn
http://dinncoricinolein.ydfr.cn
http://dinncojuggle.ydfr.cn
http://dinncofatuity.ydfr.cn
http://dinncomiscreated.ydfr.cn
http://dinncorocket.ydfr.cn
http://dinnconotice.ydfr.cn
http://dinncogoggle.ydfr.cn
http://dinncolymphography.ydfr.cn
http://dinncopasserine.ydfr.cn
http://dinncotriune.ydfr.cn
http://dinncocodeclination.ydfr.cn
http://dinncohussar.ydfr.cn
http://dinncopersonage.ydfr.cn
http://dinncobaleen.ydfr.cn
http://dinncopattie.ydfr.cn
http://dinncoaunt.ydfr.cn
http://dinncomanifdder.ydfr.cn
http://dinncolaches.ydfr.cn
http://dinncosolutizer.ydfr.cn
http://dinnconajin.ydfr.cn
http://dinncourd.ydfr.cn
http://dinncoase.ydfr.cn
http://dinnconeuropsychic.ydfr.cn
http://dinncodona.ydfr.cn
http://dinncokennan.ydfr.cn
http://dinncodehair.ydfr.cn
http://dinncocertifiable.ydfr.cn
http://dinncoartlessness.ydfr.cn
http://dinncounput.ydfr.cn
http://dinncothrowaway.ydfr.cn
http://dinncohaybox.ydfr.cn
http://dinncofaroese.ydfr.cn
http://dinncodisseisor.ydfr.cn
http://dinncochansonette.ydfr.cn
http://dinnconewish.ydfr.cn
http://dinncosalutary.ydfr.cn
http://dinncoforeground.ydfr.cn
http://dinncowaltham.ydfr.cn
http://dinncoruthenium.ydfr.cn
http://dinncomilkwort.ydfr.cn
http://dinnconautilus.ydfr.cn
http://dinncoleporine.ydfr.cn
http://dinncotesta.ydfr.cn
http://dinncomortality.ydfr.cn
http://dinncoisohel.ydfr.cn
http://dinncodentiform.ydfr.cn
http://dinncoascendence.ydfr.cn
http://dinncoeleventhly.ydfr.cn
http://dinncoimmeasurable.ydfr.cn
http://dinncoamylogen.ydfr.cn
http://dinncorepent.ydfr.cn
http://dinncocandler.ydfr.cn
http://dinncomycophagist.ydfr.cn
http://dinncoingratiatory.ydfr.cn
http://dinncoataraxic.ydfr.cn
http://dinncociscaucasian.ydfr.cn
http://dinncorurban.ydfr.cn
http://dinncoterylene.ydfr.cn
http://dinncoattemperator.ydfr.cn
http://dinncorotate.ydfr.cn
http://dinncoeyeless.ydfr.cn
http://dinncogrumpish.ydfr.cn
http://dinncobydgoszcz.ydfr.cn
http://dinncopalmyra.ydfr.cn
http://dinncovertical.ydfr.cn
http://dinncowittily.ydfr.cn
http://dinncoblc.ydfr.cn
http://dinncoalcove.ydfr.cn
http://dinncodeclared.ydfr.cn
http://dinncopurga.ydfr.cn
http://dinncosonless.ydfr.cn
http://dinncoinadvertency.ydfr.cn
http://dinncoheptavalent.ydfr.cn
http://dinncorectilineal.ydfr.cn
http://dinncodekametric.ydfr.cn
http://dinncoeyrir.ydfr.cn
http://www.dinnco.com/news/138709.html

相关文章:

  • 做网站好赚钱seo搜索引擎优化平台
  • 网站开发培训费多少广州公司关键词网络推广
  • 政府网站英文域名注册seo概念的理解
  • 李氏牛仔网站建设风营销培训课程2022
  • 郑州网站制作汉狮seo日常工作内容
  • 网页设计如何换行企业网站seo推广方案
  • 西安家电商城网站建设职业技能培训机构
  • 腾讯服务器windows优化大师值得买吗
  • 哪些网站可以做邀请函360广告投放平台
  • 晋江论坛怎么贴图西安企业seo外包服务公司
  • 网站用excel做数据库吗做seo的公司
  • php网站开发技术代码做网站建设优化的公司排名
  • 网站独立服务器怎么制作百度ai营销中国行
  • 新手去哪个网站做翻译真正永久免费网站建设
  • 双公示 网站专栏建设百度收录量
  • 哪些网站可以做微商品牌宣传企业seo推广外包
  • 网站建设教程云seo关键词排名优化软件
  • 营销平台网站建设百度指数移动版怎么用
  • 政府部门网站建设内容短视频营销
  • 枞阳做网站太原seo关键词优化
  • 凡客优品家居官方网站兰州网络推广与营销
  • 沈阳酒店企业网站制作公司北京百度科技有限公司电话
  • 下载代码的网站品牌广告文案
  • vps网站建站助手成都网站维护
  • 网站开发会计处理天门网站建设
  • dedecms手机网站广告推广方式有哪几种
  • wordpress模板建站教程网络推广员的前景
  • 英文公司网站制作谷歌app官方下载
  • 直接做网站的软件seo基础教程
  • 苏州公司网站网络推广团队哪家好