vue项目微信端清理缓存问题解决

vue为单页面前端框架,清理缓存,常规的方式是添加html头部meta,如果逻辑里面是需要使用缓存的,这种方式不建议使用,代码片段如下:

<html manifest="IGNORE.manifest">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
......

第二种方式就是在文件名后添加随机数,可以在路由里面进行设置,但如果路由是需要带参数的,会有影响

const routes = [
  { path: ‘/‘, redirect: ‘/userInfo‘},
  { path: ‘/home‘,component:home},
  { path: ‘/login?123232‘, component: login, meta: {title: ‘登录‘}},
  { path: ‘/userInfo‘, component: userInfo, meta: { requiresAuth: true, title: ‘账号管理‘ }},
  { path: ‘/toggleIdentity‘,component:toggleIdentity, meta: { requiresAuth: true, title: ‘身份切换‘ }},
  { path: ‘/myTracks‘, component: myTracks, meta: { requiresAuth: true, title: ‘我的足迹‘ }},
  // { path: ‘/applicationCenter‘, component: applicationCenter, meta: { requiresAuth: true, title: ‘应用中心‘}},
  { path: ‘/topicList‘, component: topicList, meta: { requiresAuth: true, title: ‘话题探讨‘ }},
  { path: ‘/topicList/:id‘, component: topicDetail, meta: {title: ‘话题详情‘}},
  { path: ‘/activityList‘, component: activityList, meta: { requiresAuth: true, title: ‘精彩活动‘ }},
  { path: ‘/interactionList‘, component: InteractionList, meta: { requiresAuth: true, title: ‘家校互动‘ }},
  { path: ‘/officeMsg‘, component: OfficeMsg , meta: { requiresAuth: true, title: ‘办公短信‘ }},
  { path: ‘/msgInfo/:messageId/:type/:smsMessageType/:keyTime‘, component: MsgInfo, meta: { requiresAuth: true, title: ‘详情‘ } },
  { path: ‘/sendMessage‘, component: SendMessage , meta: { requiresAuth: true, title: ‘发消息‘ }},
  { path: ‘/msgStatusReport/:messageId/:msgType/:keyTime‘, component: MsgStatusReport , meta: { requiresAuth: true, title: ‘状态报告‘ }},
  { path: ‘/commentList‘,component:commentList},
  { path: ‘/DPlayer/:id‘,component:DPlayer},
  { path: ‘/application‘, component: Application , meta: { requiresAuth: true, title: ‘应用‘ }}
];

第三种就是在vue项目里面进行代码添加后缀,以随机数的形式,进入。原理上和第二种方式相似,url地址变化,就不会有上次的缓存了。参考地址https://blog.csdn.net/yelin042/article/details/79763061

import store from ‘./vuex/store‘
import cookie from ‘./libs/cookie‘

// 路由预先判断
router.beforeEach((to, from, next) => {
  // 首先判断是否已有用户登录信息userInfo
  if (store.state.user.info) {
    next()
  } else {
    // 强制给index.html 加上时间戳
    if (document.URL.indexOf(‘index.html?t=‘) < 0) {
      let timestamp = (new Date()).valueOf()
      window.location.href = ‘/index.html?t=‘ + timestamp + ‘#‘ + to.fullPath
    }
    let ua = window.navigator.userAgent.toLowerCase()
    // 判断微信客户端
    if (ua.indexOf(‘micromessenger‘) > 1) {
      // 首先获取授权cookie authid
      let authid = cookie.get(‘authid‘)
      if (authid) {
        Vue.http.post(‘/index.php/weixin/Auth/auth‘, {authid: authid}).then((response) => {
          let res = response.data
          if (res.code === ‘04‘) {
            cookie.del(‘authid‘)
            window.location.href = ‘404.html‘
          } else if (res.code === ‘01‘) {
            store.dispatch(‘setUserInfo‘, res.userInfo)
            next()
          }
        }, (response) => {})
      } else {
        // 强制跳转,授权登录,并设置cookie
        window.location.href = ‘/index.php/weixin/Auth/redirect?redirect=‘ + encodeURIComponent(document.URL)
      }
    } else {
      //  非微信客户端
      Vue.http.post(‘/index.php/weixin/Auth/auth‘, {openid: cookie.get(‘openid‘)}).then((response) => {
        let res = response.data
        if (res.code === ‘04‘) {
          cookie.del(‘authid‘)
          next()
          // window.location.href = ‘/index.php/weixin/Auth/redirect?redirect=‘ + encodeURIComponent(document.URL)
        } else if (res.code === ‘01‘) {
          store.dispatch(‘setUserInfo‘, res.userInfo)
          next()
        }
      }, (response) => {})
    }
  }
})

原文地址:https://www.cnblogs.com/sakura-lifangfang/p/9660550.html

时间: 2024-10-10 16:16:02

vue项目微信端清理缓存问题解决的相关文章

Weex/Vue项目中静态资源缓存处理.md

目录 一.项目缓存问题 二.浏览器本地缓存 三.解决方案 今年公司技术考察,考察了EMAS平台,从而接触了weex,并且为了进行POC测试,大胆采用weex进行新web项目试点.weex内置了vue框架,整体框架与vue一致,好在刚接触了vue一段时间,因此用起来还算顺手,碰到问题weex官方文档没有的,基本都可以参考vue的文档. 一.项目缓存问题 第一次接触这类前后端完全分离的开发模式,一开始的确是一头雾水,一个多月时间,难点一点一点克服,目前进入项目测试阶段,经常碰到bug修复了,测试人员

基于vue-cli3的vue项目移动端样式适配,lib-flexible和postcss-px2rem

1,安装 flexible和 postcss-px2rem(命令行安装) npm install lib-flexible --save npm install postcss-px2rem --save 简要介绍这两个包的用途: flexible会为页面根据屏幕自动添加<meta name='viewport' >标签,动态控制initial-scale,maximum-scale,minimum-scale等属性的值. 例如在Galaxy S III: 例如在iphone6/7/8: po

Vue项目移动端滚动穿透问题

概述 今天在做 Vue 移动端项目的时候遇到了滚动穿透问题,在网上查资料后,选取了我觉得最好的方法,记录下来供以后开发时参考,相信对其他人也有用. 上层无需滚动 如果上层无需滚动的话,直接屏蔽上层的 touchmove 事件即可.示例如下: <div @touchmove.prevent> 我是里面的内容 </div> 上层需要滚动 如果上层需要滚动的话,那么固定的时候先获取 body 的滑动距离,然后用 fixed 固定,用 top 模拟滚动距离:不固定的时候用获取 top 的值

WIFI物联网平台微信端开发分享

本文由企鹅圈原创成员Hunter_Zhu贡献. 本篇文章是基于近期一个项目微信端开发过程的一个总结.文中主要介绍了云智易平台下微信端开发的流程.该平台提供的主要功能以及此次H5开发使用到的一些UI组件.能够帮助企鹅仔高速对该平台微信开发有个了解. 本文介绍的微信硬件物联网开发思路不局限于某个平台.对市场上全部的平台,如机智云也是适用的,特此说明. 一.创建微信应用,配置微信server 在云智易开发平台中,开发人员须要在应用管理中创建一个微信应用,填写微信公众号的基本信息:APPID, APPS

云瓣影音网站&amp;&amp;微信端(已开源)

随着该项目的发布到线上(小打小闹),即将又要开启另一段崭新的旅程.强迫自己停下来写写所学所得,个人认为总结和分享是一种很棒的学习方式.那让我们先来瞧瞧项目长的什么样.如果着急要源码的朋友,可以下拉到最后~~ 微信端部分展现                从微信端进入网页端的效果(这部分还需要优化(*^__^*))         但是这图是真的还是假的啊,特效蛮酷炫的,不会是被楼主P上去的吧?(第4副图中间那个女孩确实是云云的女同学)嘿嘿,用微信扫这个二维码(是骡子是马拿出来溜溜~~),不过测试

Vue 项目实现微信分享的自定义分享链接问题解决

前言: 前两天在做微信公众号里的项目的时候有一个需求是在 vue 项目中实现微信分享,然后在自定义分享链接的时候出了一些问题,分享出去的自定义链接(链接中携带参数)总是会直接跳到项目首页,而且是玄学跳转,时而自定义链接正常,时而直接跳到首页,答案在文章最后面. 正文: 1. 这里不说微信分享中的配置微信 js-sdk ,请自行查阅微信公众号开发文档 2. 阐述下 解决此问题的一些思路 解决这个问题需要知道这样的信息,微信公众号中的项目在请求签名和自定义分享链接的时候对于Vue 的#路由不太友好

如何在Vue项目中使用vw实现移动端适配

https://www.w3cplus.com/mobile/vw-layout-in-vue.html  原文网址 如何在Vue项目中使用vw实现移动端适配 作者:大漠 日期:2018-01-25 点击:10362 vw Layout 布局 Vue mobile 编辑推荐:使用 Coding.net 搭建静态博客,自定义域名,全站 HTTPS 加密,自动实时部署, 立即托管您的网站! 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页

vue2.0 在微信端如何使用本地IP访问项目

我们会遇到这样的需求,在PC端开发vue脚手架项目,希望在微信端随时浏览页面(如果打包再发布到服务器又太麻烦),怎么办? 思路很简单:保证手机和电脑在同一个IP下,用同一个IP访问项目,这样就可以了: 那么,两者使用同一个IP后,怎么让两者互相通信呢? Step1:修改项目的host 找到config文件里面的index.js里面的module.exports下面的dev下面的host: "localhost" 改为 host: "0.0.0.0"; (0.0.0.

转:如何在Vue项目中使用vw实现移动端适配

https://www.w3cplus.com/mobile/vw-layout-in-vue.html 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越受到众多浏览器的支持,因此在<再聊移动端页面的适配>一文中提出了vw来做移动端的适配问题.到目前为止不管是哪一种方案,都还存在一定的缺陷.言外之意,还没有哪一个方案是完美的. 事实上真的不完美