后续跟进懒加载缓存问题的解决

小说:8种一类疫苗的常见不良反应作者:伯建更新时间:2019-03-25字数:10739

“I秀的?还是视界的?”不过,知名的直播网站,他还是知道那么几个的。

参加非比老师成人依恋修复工作坊有感

两名亲兵又将桌子抬到了谋刺逻多的面前,谋刺逻多拿起契约看了半天,旁边的谋刺思翰忍不住道:“金山牧场怎么办?”
有万象娱乐惨败的前科在,娱乐圈但凡有点名气底子的,没有一个人会追随他,杨度很清楚自己的出路只有一条,那就是培养新人。

有望成为国内最年轻白金歌手的人物,死在他们这选拔新人歌手节目的分赛区半决赛上,不管二是出于什么理由被淘汰的,确实对最强新声这招牌很不利,肯定会招来铺天盖地的黑。

1.懒加载是什么?

    在ionic2中所有的组件、模块、服务、管道等都堆积在app.module.ts模块中,在页面初始化的时候会一次性加载所有的资源,导致资源过大,页面渲染缓慢,也导致app.module.ts混乱,不美观,不易维护,不适用于结构繁多、业务复杂的项目。

   懒加载的出现,使得在跳转到对应页面的时候加载对应页面的js、css、html,这样每个页面都是一个模块,只有在需要的时候才会加载,大大缓解了首屏的压力。

2.懒加载的使用:

  https://ionicframework.com/docs/api/navigation/IonicPage/

3.实战项目的结构:

  

 

  app.module.ts中并没有导入任何页面模块或申明页面组件。每个页面都应用了一个懒加载模块。直接通过push导入模块就可以了。

 4.打包后的结构:

  

   build文件下的js文件是每个页面懒加载编译后的js,跳转到对应页面才会引用对应的js文件,可以在控制台中network中观察。

5.问题来了!

  index.html

  

  index.html文件中引用的js加版本号可有效清除对应js 的缓存。

  但因为build下的一堆数字js是系统编译后自动生成的,没法加版本号,导致被浏览器或服务器缓存。

  出现一个情况:man.js、vendor.js、polyfills.js是请求最新的,build下的js从缓存中读取,所以项目在跳转对应页面,加载引用的js时,会找不到。

6.花式尝试方法

  服务器不做缓存,无效。

  找出页面模块编译后引用js的地方,解决了页面应用js的问题,但导致polyfills.js报错,混淆的代码,已经没有了可读性。

  使用meta不做浏览器缓存,无效

 

7.解决办法,去掉懒加载,使用首屏全部加载,混淆代码,极致压缩。

  网上很少有对应的资源,因为ionic3基本上用来做app开发,资料很少。因为已经上了正式服,无奈要赶紧解决,全部去掉了懒加载。

  去掉懒加载后的打包

  

   只剩下暴露在index.html中引用的js了,加版本号可解决缓存。

8.自动化混淆代码,每次打包修改文件名,达到清除缓存的作用

  

  npm install map-replace -D
  npm install hashmark -D

  package.json scripts加:

  

  "hashcb": "hashmark -l 8 -r --cwd www/build "*.{js,css}" {name}.{hash}{ext} | map-replace -m "<[^>]+>" www/index.html",
  "dist": "npm run clean && shx rm -rf www/* && npm run build --prod && npm run hashcb && workbox injectManifest"

  

  打包: npm run dist

  取www/目录下的文件,放弃ionic cordobva build browser --prod 的方式。

9.后续跟进懒加载缓存问题的解决,问题主要还是在ios苹果端的强缓存。。。。

  

编辑:成王

发布:2019-03-25 07:09:45

当前文章:http://leetaemin.cn/list_73917.html

女友和他人开房,该如何教育? 罗李华谈:属猪的人2016年运程 17道题自测心理健康 易经智慧 罗李华:处女座2016年运势 男女交往最忌讳的是什么? 为了孩子,父母该不该守住破碎的婚姻 承认吧,你就是想成功又不想努力

16380 67100 92429 77724 62167 10685 41491 28650 76851 81351 81734 85517 11840 81645 71392 49170 35039 50248 91693 20767

我要说两句: (0人参与)

发布