瞎扯淡 发布和回复的时间不见了

lzj_ykds · 2013年04月25日 · 最后由 sevk 回复于 2013年04月28日 · 2540 次阅读

如题

什么不见了?具体一点

楼主在说啥呢?

这个问题经常出现,它不是 RubyChina 代码导致的,而是 Google Analytics 脚本被墙导致的。 ga.js 会通过一个请求向 GA 服务端发送当前客户端的信息,但这个请求大概有 20% 的概率被墙,Safari 会一直等待,后续的 js 也无法执行。Chrome 会超时失败(在调试工具的 Network 标签页可以看到),后续的 js 同样无法执行。 因为 RubyChina 的回复时间都是通过 js 生成的,这种情况下,就会出现时间不见了。但并不影响其他功能。 cc @lgn21st

因为云梯之前也遇到过这个问题,导致首页 slides 脚本无法加载,所以我们深入研究了一下原因。然后眼泪都掉下来了。

#3 楼 @kgen 看了你的回复后,泪水在我的眼眶中打转~~~

#3 楼 @kgen 怪不得我能看见... 还真是没想到会这样

@kgen 好神奇啊。GA 的 JS 是最后通过插入 script 标签注入的,按道理不应该影响的。

#6 楼 @doitian 我们一开始也是这么想的,包括放末位和异步 JS 请求,后来发现不是 ga.js 本身被墙,而是 ga.js 会请求一个空的 image,这样 GA 那边才能拿到各种客户端信息,这个请求被墙了,即使 ga.js 放在末位,也无法控制这个请求一定在所有其他 js 被执行完后再执行。

#5 楼 @blacktulip 所以有了移民节点……

为什么用 js 来计算和渲染呢,直接 ruby 呢?

#9 楼 @vincenttone RubyChina 的 X 分钟前是动态的,不刷新页面,那个时间也会动态变化。这个只有用 JS 啦

用 Ruby 计算时间,html 页面就不能缓存了。

#11 楼 @Rei 可以先显示成 几月几号几点

#10 楼 @kgen 原来如此呀,不过可以先把这个渲染出来,然后用 js 做动态变化,这样至少不会影响基本的体验。

最近我的 webqq 经常丢消息,估计也是 gfw 的问题了。

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