Rails 有没有可能用 localStorage 把 js 缓存一下?

Peter · 2016年07月01日 · 最后由 huacnlee 回复于 2016年07月04日 · 3145 次阅读

Ruby china 在我这 (国外) 访问的时候,经常被 upayun 的 js 卡住,上面一条红线半天跑不动。

能不能把这个 js 缓存到 localStorage?这样应该会毫秒开网页了。

比如说用这个 https://addyosmani.com/basket.js/

@ 一下勤劳的 @huacnlee

这个 JS 文件应该是已经被浏览器缓存的。 upyun 首次访问后,会返回 304 给浏览器,直接使用浏览器的 cache。

#1 楼 @lgn21st

谢谢回复,按道理应该是缓存了的,但开始就是各种卡,你一回复,好像突然就不卡了。也可能是我去 chrome 控制台查看了一下 Sources 里的 js. 这种卡顿的现象在我这经常发生,有时候点了发帖子的按钮,半天没反映,最后网页直接打不开,变成灰色。

还一个可能的原因是 ActionCable,在我这经常出错,连不上,是不是这个原因也能让网页一直无法加载?

WebSocket connection to 
app-f6d5f7b960dc175c678ae553f0b427741269e4a2a5389b85e269081dcbe7c6d8.js:107

WebSocket connection to 'wss://ruby-china.org/cable' failed: Error in connection establishment: net::ERR_TIMED_OUT

理论上 actioncable 是可以在用户设置中配置一下,选择关闭的,这样下一次载入的时候就不载入初始化 action cable 相关的代码了。

ActionCable 不会卡住页面的吧

ActionCable 不影响加载。

现在还是时不时卡一下,那是什么原因呢,大家推荐个什么工具诊断一下? 只有 ruby-china 这样,v2ex 之类的都飞快。

localStorage 是用来缓存数据的,不是静态文件啊

意义何在?一个 js 文件也要 100K 起

9 楼 已删除

慢应该是 cdn 的问题,可能你那边附近没 cdn 节点

peter 肉身翻墙了?

设置一下永久强缓存?

#12 楼 @42thcoder

$ curl -I https://ruby-china-assets.b0.upaiyun.com/assets/big_logo-d9dbac4f4816454b8779639d1795c3b21eba54778ec48608265bb2b490c00b7c.png
HTTP/1.1 200 OK
Server: marco/0.14.0
Date: Mon, 04 Jul 2016 01:44:03 GMT
Content-Type: image/png
Content-Length: 133949
Connection: keep-alive
X-Source: C/200
Last-Modified: Thu, 25 Feb 2016 07:34:19 GMT
Cache-Control: max-age=31536000
ETag: "56ceae7b-20b3d"
Expires: Sat, 17 Jun 2017 02:17:33 GMT
Accept-Ranges: bytes
Age: 1466790
X-Cache: HIT|HIT from mix-bj-pek-104; HIT(R) from ctn-zj-lna-197
X-Request-Id: cc5b174805432f58c14074113e540917; e3974ae20bf3e0abc81a76edfee418ae
Via: S.mix-bj-pek-103, T.77102.H.2, T.77102.H.1, V.mix-bj-pek-104, T.101204.R.1, M.ctn-zj-lna-197

额,浏览器访问的时候 Cache-Control 不一样,貌似被 UpYun 篡改了,我在 CDN 里面配置好一年有效期的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号