浏览器发送HTTP请求
减少请求次数
资源合并

使用打包工具

使用webpack等工具,对js和css资源进行打包,避免js或css文件过多。

但也要考虑打包文件过大的问题,需要再这之间进行综合考虑。

在SPA中常用的实践是,webpack提取出的公用文件先加载,然后路由相关的文件按需加载。

精灵图

多个小图合并后的图片。

使用的时候使用background-position进行定位使用。

缓存

HTTP Cache

强缓存

强缓存的特定是不需要询问服务器,它通过expires和cache-control来实现。cache-control的优先级高于expires,它们都用来表示过期时间,expires是存储时间戳,cache-control使用max-age来表示相对时间。

cache-control 的no-cache不询问浏览器,直接请求服务器(进行协商缓存)。 而no-store则不是不使用任何缓存策略。 s-maxage只在代理服务器中生效。

如果资源没有过期,则会直接使用该资源。

协商缓存

协商缓存是请求服务器后,服务器来判断是返回新的资源,还是告诉浏览器使用旧的资源。

服务器每次返回资源会带有Last-Modified时间戳,每次服务器请求带上If-Modified-Since的时间戳,由服务器来判断资源修改时间是否与该时间一致。