一、问题:vue也算是现在流行的前端框架,vue打包时(npm run build),会生成一个index.html静态页面和一个静态文件夹,文件夹中有css,js,img等等,其中让我们注意的就是JS,我们所有动态数据,都会由他来处理的。如果你在打包时,路由用的异步加载,那就可能会出现我现在这个问题。把所有JS打成一个包

从图上可以看出,每个js的大小超过1M,这会导致客户端首次访问时出现加载很久,才慢慢出现页面。这是我的一个公众号的前端,每次打包更新到nginx后,第一次访问(不管访问哪个路由)都是很慢,甚至有时候要十几秒,首次访问后再访问其他路由,都非常快。这是因为首次访问时,客户端会从服务器上重新下载大量的资源,资源越大,带宽越小,下载越慢。

二、解决

1、路由改成异步加载,使得每个JS分解开,访问哪个页面就加载哪个页面。

2、打包时,进行压缩打包

2.1、首先安装插件 compression-webpack-plugin 命令:cnpm install --save-dev compression-webpack-plugin

2.1、然后进入config目录下的index.js中,找到productionGzip: false,修改把他修改为true。如下图

这个时候我们可以打包一下,如果打包出现错误的话,那可能是版本不支持,这个时候,我们需要重新下载productionGzip版本,进行降级

命令:cnpm install --save-dev compression-webpack-plugin@1.1.12

下载完后,我们再打包一下:npm run build 打包成功,我们看一下结果如何。如下图,JS都被打包成.gz包,整个大小缩小很多。

3、内部引用转成外部链接

vue有一大特点就是可以像maven一样下载依赖包,vue在打包时,是直接把引用的本地依赖都一并打包到静态文件里,这使得原本就很大的资源,就得更加承重,这个时候,我们就可以考虑,部分依赖变成链接的引用。大家是否还记得多年前,还使用JS原生态时,怎么引用JQ的?同理。我们这些采用CDN节点方式进行引用。

3.1、修改根目录下的index.html

有人会问,这些链接我怎么知道,还有我本地版本是多少,我应该引用哪个版本的。大家可以进入main.js找到你要把依赖改成外部链接的包,然后跳到对应的依赖源码中,在文件路径上就会显示出对应的版本了。如我引用了mint-ui。路径上显示的是2.2.13版本,那他所对应的CDN节点就是https://cdn.bootcss.com/mint-ui/2.2.13/index.js ,同理,大家可以把链接复制到浏览器上,只要改后面的依赖名/版本号/引用JS名即可(引用JS名,可以进入依赖包里查看)。有些依赖是没有在CDM节点的,如果出现404,那就多试几次版本和名字,若试不出来,那就只能继续使用依赖。

把依赖转链接后,就需要把原来的main.js里的引用注释掉,否则还是会打包进去,

3.2、项目根目录下build/webpack.base.config.js中添加externals。这里做一个映射作用,

修改完后,我们进行打包,然后部署上去,看看样式和依赖有没有丢失,如果有丢失,再回来调试。若找不出原因,可以直接还原回依赖的方法。压缩就已经解决很大的问题了。

4、提高网络带宽

网络带宽是一个优化瓶颈,如果带宽就只有1M,你再怎么优化,也是有限的。不如提升一下,比如使用阿里云的朋友,可以临时提升一下带宽,试一下效果如此。若有提升,那建议提升带宽

js访问对方手机文件夹_前端开发——解决vue首次访问太慢的问题相关推荐

  1. js访问对方手机文件夹_[求助]苹果手机想向访问的https网页注入本地JS文件,请问如何实现?...

    浏览器chrome新建一个书签输入下面的代码,或者在地址栏输入javascript:命令如下图,IE不支持. $('#username').val("acqgxj_cly"); $ ...

  2. js访问对方手机文件夹_求JS大神帮我写个利用JS来实现手机端和PC端访问自动选择样式文件代码...

    展开全部 现在比较流行的办法是 一个网站2套代码,一套是手机一套pc, 在网站首页开e68a84e8a2ad3231313335323631343130323136353331333363353735 ...

  3. js访问对方手机文件夹_Javascript读取某文件夹下的所有文件

    匿名用户 1级 2010-04-10 回答 实例说明  BuildPath(路径,文件名) //这个方法会对给定的路径加上文件,并自动加上分界符  <SCRIPT LANGUAGE=" ...

  4. vue 将字符串最后一个字符给替换_前端开发:Vue项目实战-Music

    大家好,我来了,本期为大家带来的前端开发知识是"前端开发:Vue项目实战-Music",有兴趣做前端的朋友,和我一起来看看吧! 主要内容 项目环境搭建 路由导航实现 ListVie ...

  5. js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

  6. vue接收索引_前端开发:Vue中findIndex() 方法的使用

    前端开发过程中对数据的遍历是非常常见的操作,在Vue.js中通过对数组下标遍历操作来进行相关逻辑处理的方法常用的有两种:some()和findIndex() ,二者都是通过遍历数组里面的id值来进行操 ...

  7. vue input只能输入正整数_前端开发:Vue中获取input输入框值的方法

    在前端开发过程中,会用到各种各样的基础组件,一些常用的组件的使用方法一定要滚熟于心,对于刚入门的新手来说,对基础知识的熟练掌握很重要,如果不熟练就会影响开发速度.那么本篇博文就来分享一个比较基础的知识 ...

  8. 启用tim无法访问文件夹_如何在三星手机上启用安全文件夹

    启用tim无法访问文件夹 The Secure Folder is a useful feature on Samsung devices that allows you to keep apps a ...

  9. 魅族手机网络邻居开启后无法连接电脑,电脑无法通过IP地址访问手机文件夹

    魅族手机网络邻居开启后无法连接电脑,电脑无法通过IP地址访问手机文件夹 1 先找到控制面板打开它,WIN10的控制面板不好找,如果不会可以百度下. 2 在控制面板里点击程序 3 在程序里再点击&quo ...

最新文章

  1. 容器环境红队手法总结
  2. PCA中transform等scikit-learn中系列API用法
  3. Linux服务器下安装配置Nginx的教程
  4. ffplay分析 (暂停 / 播放处理)
  5. Spark的StaticMemoryManager
  6. videojs 动态加载视频
  7. Android OpenGL ES(六)创建实例应用OpenGLDemos程序框架 .
  8. STM32标准库官网下载方法
  9. 安卓手机修改ip软件_为什么苹果手机不用杀毒软件?安卓表示要哭了
  10. 2022-2028全球与中国智能家居产品市场现状及未来发展趋势
  11. 讯飞AIUI智能机器人1
  12. Scala基础语法1
  13. 一、与电视有关的视觉特性:
  14. 换地方上网后Kali Linux 网络设置
  15. 闲聊javaweb之servlet
  16. nodejs获取本地IP地址
  17. Excel表格函数(3)
  18. python tello_Tello-Edu无人机:如何用Python代码捕捉图像
  19. cv曲线面积的意义_【CV现状-3.1】图像分割
  20. Kawasaki川崎机械手c#二次开发dll

热门文章

  1. no system images installed for this target这个问题如何解决?
  2. 如何解决js地址栏中传递中文乱码的问题
  3. lua循环,减少不必要的循环
  4. _视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途...
  5. np.random.choice的用法
  6. 正则表达式及其在Java和Python中的相关操作
  7. 数据结构笔记(十)-- 循环队列
  8. jupyter notebook matplotlib绘制动态图并显示在notebook中
  9. (01)C++之设计模式演变
  10. (02)vtk 绘制模型的外轮廓线 模型轮廓线