vue第一次加载慢怎么优化_Vue 网站首页加载优化

news/2024/5/20 22:48:07/文章来源:https://blog.csdn.net/weixin_32549035/article/details/113709147

Vue 网站首页加载优化

本篇主要讲解 Vue项目打包后 vendor.js 文件很大 如何对它进行优化 以及开启Vue的压缩 和 nginx gzip 压缩的使用,
其他就是对接口优化等

1. vendor.js 优化

由于Vue项目随着功能变多 依赖也会随之变多,减少vendor.js的主要方法就是将其 不打包依赖!!

1.1 第一步、cdn引入各种包

index.html中cdn的方式引入vue、vuex、axios、iview、等包,如下图:

1f20cac9d157016ae7ae2cdf0178c8f5.png

1.2 第二步、在使用vue等包的地方,注释掉import引入

打开main.js文件 注释掉需要排除的依赖import ,并且注释掉 Vue.use

cc3f08c6e6bb710cd8347f0611e6e549.png
//Vue.prototype.$axios = axios;
//Vue.use(iView)

1.3 第三步、打包忽视掉vue等包

在webpack.base.conf.js , 把需要从cdn方式引入的依赖,都排除掉,包括 iview vue axios 等等 如下图

d109ab8b12d4fb24e8c138ce69004373.png

1.4 最终重新打包 npm run build

可以发现 Vue 的vendor.js文件确实变小了很多,这样在加载首页的时候 浏览器请求它的时候不会过大

可见vendor.js从 1M多已经减少到 400k了

c9a70ad862ad415eb957274cf8244133.png

2.Vue开启Gzip压缩

2.1 config/index.js 开启productionGzip

将其productionGzip 配置成true

f193f5200cde9c5b2d71a46c8f630f7e.png

2.2 配置Gzip的 插件配置

打开webpack.prod.config.js 配置一下这段代码

d617c4c6bb6c2c589b912f220ed12026.png

代码如下

if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')webpackConfig.plugins.push(new CompressionWebpackPlugin({asset: '[path].gz[query]',algorithm: 'gzip',test: new RegExp('.(' +config.build.productionGzipExtensions.join('|') +')$'),threshold: 10240,minRatio: 0.8}))
}

2.3 配置打包report 查看详细打包信息

打开package.json ,配置

"report": "npm run build --report=true"

a82edb416495d48d568bc6782367773b.png

2.4 重新打包查看Gzip压缩情况

重新 npm run build 可以看到提供的 gz 压缩包 vendor.js.gz 已经小到了100k左右了, 从刚开始1M已经优化到现在的100k了

39d87bc08068e0e362189a46eeb01719.png

3.开启Nginx Gzip功能

3.1 gzip的概念

gzip 是 Web 世界最广泛的文件压缩算法,已经得到了绝大多数的服务端和客户端软件(例如我们使用的浏览器)的支持。gzip 最为擅长的是压缩纯文本文件,其效果非常明显,大约可以减少70%以上的文件大小,所以 Web 项目中开启 gzip 十分必要

3.2 nginx gzip如何配合vue使用

事先用Vue生成的 gzip 压缩好文件(.gz)让 nginx 根据请求来自己选择 .gz 文件输出,利用 nginx 中的模块 http_gzip_static_module,不消耗 CPU 资源,nginx配置只需要在上述里面加入一行即可,如下:[563513413](正在跳转),不管你是大牛还是小白都欢迎入驻

gzip_static on;

3.3 主要要添加 http_gzip_static_module 模块

nginx 中的模块 http_gzip_static_module 默认是不在的

所以我们要记得在 nginx 里面添加上 http_gzip_static_module 模块,参见:yum安装下的nginx,如何添加模块,和添加第三方模块

安装完http_gzip_static_module模块后,使用 nginx -V 命令查看是否模块加载成功

f230f9f913706e3737738501d2165d12.png

3.4 nginx gzip 详细配置

打开nginx的nginx.conf文件 在server部分配置上gzip的配置

f88215495760b914ddbd241f5377e9fb.png
gzip on;   开启或关闭gzip on offgzip_buffers 32 4k;gzip_comp_level 5;  压缩等级,字数越大压缩越好,时间也长gzip_static on;  重要!表示使用已经压缩好的gz文件,根据请求 配合vue生成的gz文件gzip_min_length  1k;gzip_http_version 1.1;gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

3.5 查看是否生效

可以看到相应头中存在 Content-Encoding:gzip 表示已经配置成功

26e201bdecb771699b940d14507ba67e.png

4.首页接口优化

对首页接口page 进行优化,主要是针对不需要的字段不返回,减少报文,一开始包括了markdown的报文和markdown生成的html报文 导致报文很大,请求接口耗时很长

e822d49e428f9c1dfbad302fb8c7416f.png

可以看到优化后的接口只有43ms 即可

c72ab9f9c559f76a9c41e6b634dfe886.png

5.Banner图切分,图片上CDN

将首页Banner图进行拆分压缩 8份,并且放到CDN上

4615747281b503bfab86a10847fa6f44.png

将其他图片也全部放到CDN上,本人使用七牛云CDN

6.七牛云CDN上传工具类

/**
* 七牛云 访问工具
*
* @author johnny
* @create 2019-12-03 下午2:17
**/
public class QiniuAccessUtils {/*** 七牛AK 自己去七牛云申请*/
public static final String accessKey = "e1C2jGSQsaTBN******************";
/*** 七牛SK 自己去七牛云申请*/
public static final String secretKey = "23pb5PmhN9j4*******************";
/*** 七牛存储空间名*/public static final String bucket = "johnny-blogs";
/*** 七牛默认域名 -> 切换为了 正式域名 http://cdn.askajohnny.com/*/
public static final String domain = "http://cdn.askajohnny.com/";//设置好账号的ACCESS_KEY和SECRET_KEY
private static String ACCESS_KEY = accessKey;
private static String SECRET_KEY = secretKey;//要上传的空间 //对应要上传到七牛上 你的那个路径(自己建文件夹 注意设置公开)
private static String bucketname = bucket;//密钥配置
private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);private static Configuration cfg = new Configuration(Zone.huanan());
//创建上传对象private static UploadManager uploadManager = new UploadManager(cfg);//简单上传,使用默认策略,只需要设置上传的空间名就可以了
public static String getUpToken() {return auth.uploadToken(bucketname);
}public static String UploadPic(String FilePath, String FileName) {Configuration cfg = new Configuration(Zone.huanan());UploadManager uploadManager = new UploadManager(cfg);//AccessKey的值String accessKey = ACCESS_KEY;//SecretKey的值String secretKey = SECRET_KEY;//存储空间名String bucket = bucketname;Auth auth = Auth.create(accessKey, secretKey);String upToken = auth.uploadToken(bucket);try {Response response = uploadManager.put(FilePath, FileName, upToken);//解析上传成功的结果DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);System.out.println(putRet.key);System.out.println(putRet.hash);return domain + FileName;} catch (QiniuException ex) {Response r = ex.response;System.err.println(r.toString());try {System.err.println(r.bodyString());} catch (QiniuException ex2) {//ignore}}return null;}
}

7.总结

本篇主要讲解 Vue项目打包后 vendor.js 文件很大 如何对它进行优化 以及开启Vue的压缩 和 nginx gzip 压缩的使用,
其他就是对接口优化等。实践出真理!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_813688.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7 iis安装php mysql_WIN7下配置IIS7.5+PHP5.3+MySQL动态网站服务器环境

比APPPSERV傻瓜建站包操作更简便、更智能、更科学的建站方法声明:采用环境及各软件版本,以下软件均采用当前最新版1.操作系统Windows7 英文旗舰版,自带IIS7.5;2.PHP软件版本:php-5.3.2-nts-Win32-VC9-x86.msi&#xff…

thinkphp5项目--企业单车网站(三)

thinkphp5项目--企业单车网站(三) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps://github.com/fry404006308/BicycleEnterpriseWebsite 一、动态查询 thinkphp支持动态查询,这就很方便了,可…

【网站前端】第02章 HTML常用标签

一、标题标签<h1> - <h6> &#xff08;重要&#xff09; 1、例&#xff1a;<h1> 我是一级标题 </h1> 2、语义&#xff1a;作为标题使用&#xff0c;并且依据重要性递减。 二、段落标签&#xff08;重要&#xff09; 1、例&#xff1a;<p> 我…

DotNetCore 结合 Nginx 将网站部署到阿里云

基础环境配置 域名和服务器请先自行购买 基于 云服务器ECS 创建一个应用实例&#xff0c;选择系统镜像为 Ubuntu 16.04&#xff0c;在本机通过 SSH 进行远程连接&#xff0c;并进行相关配置 ssh roothttp://39.108.48.203/...sudo apt-get update sudp apt-get upgrade sudo ap…

html点击按钮跳转到另一个界面_点击查看本周SEO功能优化

SEO是搜索引擎优化&#xff0c;是利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让网站在行业内占据领先地位&#xff0c;获得品牌收益。本周快站针对SEO功能进行了若干优化&#xff0c;现在您可以一键检测您的网站哪里需要进行SEO优化。SEO功能更新使用场景&a…

php记录网站访问,PHP简单实现记录网站访问量功能示例

本文实例讲述了PHP简单实现记录网站访问量功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;tongji/index.php文件&#xff1a;$file dirname(__FILE__)./tongji.db;//$data unserialize(file_get_contents($file));$fpfopen($file,r);$content;if (flock($fp,LOC…

cn域名多少钱_一个常规的企业网站建设大概需要多少钱?企业网站建设价格明细...

一个常规的企业网站建设大概需要多少钱?我们都知道&#xff0c;如果想要把公司网站搭建得更好&#xff0c;只有找专业、正规的网站建设公司来搭建是最省时、省精力、省钱的&#xff0c;下面角点科技的小编就来告诉大家一个常规的企业网站建设大概需要多少钱。一个常规的企业网…

winhttp 访问https_「winhttp」C++用winhttp实现https访问服务器 - seo实验室

winhttp由于项目升级&#xff0c;在数据传输过程中需要经过oauth2.0认证&#xff0c;访问服务器需要https协议。首先&#xff0c;实现C代码访问https 服务器&#xff0c;实现Get和post功能&#xff0c;在网上搜索一通&#xff0c;发现各种各样的都有&#xff0c;有的很简单&…

Linux中什么是动态网站环境及如何部署

当谈论起网站时&#xff0c;我们可能听说过静态和动态这两个词&#xff0c;但却不知道它们的含义&#xff0c;或者从字面意思了解一些却不知道它们的区别。 这一切可以追溯到网站和网络应用程序&#xff0c;Web应用程序是一个网站&#xff0c;但很多网站不是Web应用程序&#x…

外贸资源推荐:做外链做分类-61个高人气英国免费分类广告列表网站

外贸资源推荐&#xff1a;做外链做分类-61个高人气英国免费分类广告列表网站以下内容适合外贸网商&#xff0c;做外链 做分类广告-61个高人气英国免费分类广告列表网站<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr>&…

Zencart_SEO插件:ultimate_seo_urls的htaccess重写url规则

Zencart_SEO插件ultimate_seo_urls的htaccess伪静态重写url规则 #####NOTE:Replace/shop/withtherelativewebpathofyourcataloginthe"RewriteBase"linebelow: //启用重写规则 OptionsFollowSymLinks RewriteEngineOn //重写目录 RewriteBase/ #FromUltimateSEOURL…

ASP.NET 网站路径[转载]

文章来源:http://blog.csdn.net/winnerzone/archive/2007/05/10/1603044.aspx

重建索引要多久_网站关键词多久更新一次-top推

说起关键词&#xff0c;相信大多seoer都有非常深刻的认识&#xff0c;因为要做好网站&#xff0c;关键词的优化是最重要的一环&#xff0c;那么网站关键词多久更新一次对搜索引擎来说比较友好呢&#xff1f;接下去top推的小编就带大家一起来分析一下吧。网站关键词多久更新一次…

ufo帧率测试网站_帧率担当,i5-9600KF与电竞粉更配哦

嗨&#xff01;艾维巴蒂!这里是懂装机和爱玩游戏的雕哥&#xff01;作为一名电竞猛男&#xff0c;我的兴趣爱好无非就是开开黑、搞搞机&#xff0c;偶尔还会研究下Intel14mm拉链技术。不过呢&#xff0c;生活不只有游戏&#xff0c;还有诗和远方啊&#xff01;要攒机咱就得一步…

一步一步SharePoint 2007之六:改变一个网站的导航栏

一步一步操作过的朋友一定会发现&#xff0c;在Site Actions菜单中有两个有些类似的菜单项&#xff0c;一个是Modify Navigation&#xff0c;另外一个是Manager Content and Structure&#xff0c;这两个项目似乎都跟本篇文章要解决的问题有关。不过&#xff0c;在需要改变网站…

一步一步SharePoint 2007之十九:解决实现注册用户后,自动具备访问网站的权限的问题(1)——配置Provider...

摘要  前面的文章中&#xff0c;我们注册一个新用户后&#xff0c;需要手动加到网站的Members用户组中&#xff0c;这个用户才能真正可以访问网站&#xff0c;这点非常不符合我们的习惯&#xff0c;我们希望能够注册后&#xff0c;自动具备访问网站的权限。那么能不能实现这点…

zencart周末在线外贸建站实战案例练习交流-左栏菜单边框制作视频详解

左栏制作主要要熟悉和掌握边框的标题和边框容器内容的编辑与修改的技巧和经验 本视频任务完成如下图所示: 左栏制作 具体步骤和流程 整体到部分/局部 将目标站的css加到主站主样式 在前台调用 leftBoxContainer------box内容对换 详情请看在线 http://v.youku.com/v_show/id_…

messagebox弹框内容提交后怎么清空_买完域名和主机后如何做解析?- B2B外贸网站自建教程(3)...

前文提要&#xff1a;如何注册域名及其注意事项如何购买WordPress托管主机接下来对前两篇说到的三大域名注册商&#xff0c;分别介绍修改NS(域名服务器)的方法。将域名已有服务器改为Siteground主机的域名服务器&#xff0c;能让我们不用逐一配置网站的解析记录&#xff0c;省时…

2012年移动SEO启示

2012年是搜索营销真正成熟的一年 &#xff0c;手机成为增长最大的组成部分之一&#xff0c;其整体搜索市场已达到20&#xff05;的份额。移动媒体的出现&#xff0c;使得搜索引擎优化更难。 展望未来&#xff0c;预计到2012年一年&#xff0c;语义搜索Web 3.0&#xff0c;极大地…

nitc免费效益型企业网站php版 后台不能登陆,NITC(定海神真)免费效益型企业网站PHP版 V3.2...

NITC(定海神真)效益型网站管理系统.PHP特色&#xff1a;1. 网站设计精美&#xff1a;前台页面全部采用DIVCSS架构&#xff0c;设计严格规范&#xff0c;页面精美大气&#xff0c;布局合理。2. 管理操作方便&#xff1a;后台管理界面友好&#xff0c;使用方便&#xff0c;功能强…