云服务器响应慢,网页加载慢的问题
问题:
本文接上一次博客,云服务发布springboot项目踩过的坑
自从上次,一咬牙买了阿里云的服务器(虽然是白嫖的15天试用期)。
但是有一个问题一直困扰着我,如鲠在喉!
非常难受!
就是网页的加载速度,实在是太慢了!
硬生生的把我从5G时代,拉倒了3G时代!
可是我使用的是2M的宽带啊,速度不至于这样吧!
原因分析:
1、服务器原因——购买网速快的宽带
2、数据库查询慢——增加索引,一次查询少量数据
3、服务器传来的css,js,图片等文件没有被缓存,导致一次次重复的加载相同的文件
4、其他
发现原因:
这里着重解决第3种问题。
我打开 检查 (快捷键 F12) ,发现Network里面的js,css文件会很快消失
检查vue.js 里面的请求头,发现no-cache
然后,我百度了很久,终于找到了解决方案:
首先,新建一个类 WebConfigConfigurer,实现 WebMvcConfigurer接口
「此方法的作用就是,将resouces下的静态资源纳入到浏览器缓存之中」
package com.jch.quiz2.config; import org.springframework.context.annotation.Configuration; import org.springframework.http.CacheControl; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.concurrent.TimeUnit; @Configuration public class WebConfigConfigurer implements WebMvcConfigurer { // 推荐使用implements WebMvcConfigurer,这样不会覆盖其他的配置 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") // 此处是url的路径 .addResourceLocations("classpath:/static/") // 这里是uri资源的路径,即静态资源路径 // .addResourceLocations("classpath:/static/pic/") // 这里可以配置专门的文件夹 .setCacheControl(CacheControl.maxAge(604800, TimeUnit.SECONDS).cachePublic()); } }
我的文件结构:
效果:
添加配置类前
添加配置类后
可以看到,网页的响应速度快了100多ms!!
而且,在size一栏,可以看到memory cache,说明,已经加入了浏览器内存之中!
参考资料:
ps:这位大佬讲的非常清楚了!