h5混合开发加载优化问题

1、问题描述

在项目中,存在微信公众号(即:H5页面)以及安卓和iOS等两款app,在app中调用了H5页面部分业务代码和相关设备的详情页面,但在app中设置WebView缓存的时候,发现切换页面的时候数据没有及时更新,导致app放弃了webview缓存,其结果就是每次从app进入H5都会加载H5相关资源,导致加载缓慢。

WebView的四种缓存机制:

// LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据

// LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.

// LOAD_DEFAULT: (默认)根据cache-control决定是否从网络上取数据。

// LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。

2、优化方向

1、H5页面按需加载

首先当WebView加载H5页面时,尽可能只加载其所需页面资源,配合webpack配置和vue-router,可以较为方便的实现。

vue-router提供的路由懒加载主要依赖与webpack的代码分割和vue的异步组件,webpack提供了两种方式分离方式:1、es6提供的import()即vue-router推荐的方法,2、是webpack特定的require.ensure。

具体使用如下:

const chunkname1 = r => require.ensure([], () => r(require('@/components/chunkname1.vue')), 'chunkname-1')

其中chunkname-1为传入的chunkName,若想真正将每个chunk独立出来,还需要给每个chunk名不同的名称,若chunkName相同会导致,相同名称的chunk打到同一个js中。

命名在webpack配置的output中设置,即输出,新增一项:chunkFilename: utils.assetsPath(js/[id].[hash].js)

关于id

其中id为web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值