资源请求合并和拆分-论 http 缓存与请求的一对一关联

2018-05-28 12:16:58 +08:00
 vevlins

拆分的理由

合并的理由

这两种方案都是各有优点,在现行的技术框架下,以下思路是否是比较好的解决方案:

但是这样还是没有能够解决** 部分更新必须导致的整体文件更新 **,除了一个 js 和多个 js 的情况,还有 js、css 的内联还是拆分这种情况。

我认为这种局面是由于 http 缓存和请求的一对一关系和前端缺乏对 http 缓存的控制能力造成的,我设想一种方案:实现一个资源内可以划分不同的 part,甚至于类似 git 的方式,可以请求修改部分取回来和现有的缓存结合修改,然后更新缓存。

当然这样还是没有解决在首次***减少单个文件大小,可以把首屏需要的必要文件单独提取出来,提高首屏的速度***。 那么发散一下,还是分开加载,但是加上一层实现合并请求更新和分派缓存更新。

对于以上的方案,是否有可行性,服务工作线程可以实现吗?

1642 次点击
所在节点    前端开发
4 条回复
htfy96
2018-05-28 12:23:38 +08:00
cloudflare 的 CDN 在启用某个选项后可以实现 js 的增量更新。这种东西还是交给做 CDN 的搞一个单独的缓存层做比较好,不要放到业务逻辑里
vevlins
2018-05-28 12:37:54 +08:00
@htfy96 只在 cdn 层面应该不足以实现吧 这里的增量更新是客户端的增量更新吗
htfy96
2018-05-28 12:43:49 +08:00
@vevlins cloudflare 我记得可以把你 html 最后 include 的所有 script 标签替换成他的一个小的 loader.js 。这个 loader.js 第一次会全量拉下来你的 js 存在 localstorage 里,js 更新之后它会从 CF 服务器下载{当前版本->最新版本}的 diff,然后 patch localstorage 的版本
vevlins
2018-05-28 13:57:01 +08:00
@htfy96 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX