云服务器响应慢,网页加载慢的问题

问题:

本文接上一次博客,云服务发布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,说明,已经加入了浏览器内存之中!

 

参考资料:

http://mp.weixin.qq.com/s?__biz=MzU2MTI4MjI0MQ==&mid=2247505616&idx=1&sn=fff1de1a6541531973871e016d261001&chksm=fc79bb7ecb0e3268ed10bf296b7a3c7c4ccdc309fb35f556546213733d4bc778fe2b3cec194b&mpshare=1&scene=23&srcid=0907ZxiXAEhTRfPqgw1Zy2qp&sharer_sharetime=1662537607238&sharer_shareid=dd06a3af04d13a571abe1c6fea8a303d#rd

ps:这位大佬讲的非常清楚了!

 

posted @ 2022-09-07 16:16  2337  Views(772)  Comments(0Edit  收藏  举报