关于网络请求
swpp 默认的 fetch
工作流程如下:
关于缓存
对于使用了 CDN 的同学,网站结构大致如下:
CDN 缓存
CDN 缓存是用户访问 CDN 时,若指定的资源不在 CDN 中存在,则会从源站中拉取资源,然后缓存到 CDN 的服务器当中,下一次用户再次访问同一个资源时,就不需要再访问源站了。
对于使用 CDN 的同学,这个功能推荐启用,可以降低源站压力、提高网站响应速度。
存在的问题
目前 CDN 的缓存一般是每个文件独立计时的,那么通过 CDN 拉取文件时就有可能出现一部分的文件是最新的,而一部分文件是未更新的结果。
如果此时客户端拉取到的其它文件是新的,而版本文件是旧的,那么就会导致版本文件的 CDN 缓存更新时,把不需要更新的内容又重复地更新了一遍。
如果此时客户端拉取到的版本文件是最新的,而其它文件是旧的,那么就会导致这部分资源无法被及时更新,同时如果这个资源您是使用永久缓存的方式存储的,那么直到手动更新或下一次版本更新前,其将永远不会被更新。
为了解决这个问题,可以从以下方案里面选择:
- 把所有文件的 CDN 缓存时间拉到最长,每次更新网站后刷新 CDN 的所有缓存
- 把所有文件的 CDN 缓存时间拉到最长,每次更新网站后刷新需要刷新的资源的 CDN 缓存
- 选择支持同步不同资源缓存时间的 CDN
对于需要本地缓存的资源不使用 CDN 缓存(不推荐)不使用 CDN(不推荐)