浏览器缓存 js 脚本可行?

2015-12-26 01:39:17 +08:00
 yech1990

今天开了个脑洞,每天访问那么多不同的网页,虽然每个网站都要加载不同的 js 脚本 /css 脚本,可是像 jquery , bootstrap , angularjs 一类的很多网页都要下载一次。

虽然这些文件本身不大,可是由于不可预知的力量,大部分的网页往往就卡死在这些玩意上面。

所以如果浏览器能把这些文件缓存到本地,每次判断要下载这些文件,直接本地调用,这样能节省的时间是不容小觑的。。。那么这样是不是可行的?如果自己写 chrome 插件拓展能实现不?

// 新手一枚,容我瞎逼逼,轻喷

2547 次点击
所在节点    问与答
12 条回复
sogood
2015-12-26 01:46:33 +08:00
TheCure
2015-12-26 02:11:00 +08:00
用第三方 CDN 的好处就是第一个快

第二个 用户在使用该其他网站下如果已经下载好了这些脚本,在访问你的网站时,有可能会直接使用缓存 200 from cache,也有可能向 CDN 发起请求并收到 304 not modified,这取决于 CDN 服务器返回的缓存控制策略

你说的这个不仅可行,而且就是在应用啊,只不过仅限于同一家 CDN 罢了
imn1
2015-12-26 02:15:40 +08:00
yech1990
2015-12-26 03:34:27 +08:00
@sogood 不是这么回事吧?这个要求网页得嵌入代码。。不现实吧
pynix
2015-12-26 03:42:51 +08:00
同一家 CDN 应该能复用。
chyiz
2015-12-26 04:39:39 +08:00
同推荐 decentraleyes 。 Chrome 上好像还没有类似的。
浏览器本身的确有缓存,只是如 @callofmx 说的,每次还是会向 CDN 发请求,只是收到 304 not modified ,就不下载整个文件了。
decentraleyes 的作用是当扩展检测到有相关资源的请求,直接拦截用本地文件替换。这样根本不会有请求发送到 CDN ,速度更快,更重要的是 CDN 不会知道你在访问什么网站。
yech1990
2015-12-26 13:20:33 +08:00
@chyiz chrome 没有 是因为 api 权限不够么?
yech1990
2015-12-26 15:56:41 +08:00
@imn1 试用了一段时间 确实很厉害,

为什么这么厉害的东西 v2 没人讨论.
//decentraleyes 的搜索结果为 1
sneezry
2015-12-26 16:23:29 +08:00
@yech1990 Chrome 可以做,只是没人做而已~
imn1
2015-12-26 16:41:53 +08:00
@yech1990
因为 v2 不是 safari 就是 chrome , firefox 用户甚少
qjhqxnne
2016-04-09 22:14:19 +08:00
yech1990
2016-04-10 07:43:17 +08:00
@qjhqxnne 描述看起来还以为类似手机浏览器云加速的东西,原理实现看起来确实是本地缓存

!()[https://lh3.googleusercontent.com/sdjpmMr8HPZfdqqV_Jd0TdthCbBni9sOzU-OV2K7oOXdHU8B-OL2opAq17Zxj-2aXzlcvw5t=s640-h400-e365-rw]

作者的逻辑略乱啊

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

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

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

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

© 2021 V2EX