Month: 8月 2014

内容文件的分发保障

曾经我在知乎上问过这么个问题 为什么很多网站的内容储存用别的域名?有什么好处? 答案里不少提到做 CDN 和 cookieless, 果然这些事在做大了后总会碰到一些, 小记一下我们在这方面走的路, 以及坑爹之处如何绕过

问题主要是怎么靠谱的分发内容文件 (我的叫法, 就是算成 content 的那些, 比如 .js .css 什么的, 以及图片)

首先是怎么保证客户浏览器里不要把我们已更新过的内容文件还读本地缓存里的老版本, 这个还比较简单, 在 html 等引用这些文件的地方加一个无实际用途的参数, 一般选版本号或时间戳, 这样有更新后, 浏览器看到的引用链接参数变了, 就不再读缓存而是去服务器取

然后伞破觉得我们的内容文件都走聚石塔 (淘宝开放平台版的阿里云) 太吃带宽, 而且阿里云的带宽又一点也不便宜, 想办法把这一堆给弄到了七牛上做 CDN 分发, 算是把自己服务器的带宽压力给降了下来

但是国内各色小运营商花样作死总会中枪, 春节期间江西移动自己做了个坑爹缓存, 取七牛上的文件完全搞错了, 客户又过来闹怎么不能用啊, 没办法过年期间平安最重要, 反正用户量不大, 带宽没压力就先切回了自己服务器

期间还碰到搜狗浏览器自己的那个极速模式也有坑爹缓存, 也可能取错, 这时候只能在客户过来反馈为什么用不了的时候让用户从极速模式切换到兼容模式, 这种间歇性抽风完全没法防

年后想着还是要把七牛那个利用起来, 如果用户取不到再降级到自己服务器, 于是在用户 session 里加了个参数用来标记用户取七牛文件是否正常, 默认为真, 用这个值来填充页面模板返回不同的内容文件地址. 然后在页面上写了留了个切换 session 的链接, 再在 css 里把这个元素设定为 display: none, 这样如果取 css 正常, 那前面说的那个切换链接和相关说明文字不可见, 对用户也没影响, 要取不到页面显示就乱掉但是那个提示会很明显, 用户点一下就在 session 里切换过来

本来这样应该就完了, 结果 360 这个奇葩在自己浏览器里不知道怎么想的把我们部属在七牛上的一个 lib.min.js 给判成有风险脚本不给加载, 这样客户那边有不少操作没法响应, 但是 .css 是能取到的又不会提示切换, 最后想了个更猥琐的办法, 在 .js 里都加了个没意义的空函数, 然后在首页写一段页内 js 来检测那个空函数是否存在, 如果不存在说明没加载到也还是有问题, 提示客户跳

其实提示客户跳还可以变成自动帮客户跳, 但是奇葩 IE8 (更低版本 IE 我们直接不支持了) 和用 IE 内核的比如搜狗浏览器执行 js 总是会跟正常浏览器不一样, 可能会死循环 (当然也可能是我们代码写挫了), 然后客户那边就不停的自动刷刷刷, 这事最后反正还是搞定了, 不过具体怎么搞定的我也没去跟进了解前端的事…

这样安心过了大半个月, 突然又有客户过来说你们怎么又打不开, 让对面截图发现是 avast 认为页面里有脚本无限循环直接阻止访问页面访问, 这个… 我们好歹也换参数了这个不算死循环吧, 但是还是没办法, 只能让用户关掉这些水土不服自以为是的安全软件

故事到这里暂时没有更坑爹的事情出现, 记录下来看能不能帮到后来人

客服趣事 4

鉴于逗逼们从来都是长江后浪推前浪绵绵不绝, 值一个班能被气死, 我们的客服 MM 们真不容易. 有空还是记点娱乐下

卖: 你们怎么要收钱了
狗: 去年开始淘宝就不让提供免费版了呢
卖: 你说的这一切都是真的么
狗: …要不你去问问淘宝客服?

不然呢… 为啥想到的是那一系列抓狂的歌名, 王菲《如果你是假的》, 邓丽君《假如我是真的》, 萧正楠《假如我是假的》, 孟庭苇《真的还是假的》

卖: 你好怎么不能开通
狗: 不能开通什么?
卖: 这项业务
狗: 哪项业务…?
// 过了一会忍不了给他查了下订购
狗: 是美折么? 您的订购已经过期了呀

信不信老子抽死你, 话说不清我也就忍了, 特么又不给钱浪费表情

卖: 有没有什么好的促销工具?
狗: … 你问我我当然说我们家美折了
卖: 我知道, 我是说哪个具体好点
狗: … 什么叫哪个好点?

你问我我还能说别家更好不成? 砸场子的么你

卖: 为什么我设置了新疆西藏不包邮别人拍下还是没运费?
// 狗默默研究了很久, 好像满减包邮确实没啥问题
卖: 是不是因为我运费模板设置的就是包邮啊?

你特么在逗我…?

卖: 你能教我怎么用么, 教我我马上付款

特么那么多教程你就不能随便选个看看? 都发你了也不用那么懒好么, 而且这种人确定不是十块钱买个遭罪的大爷回来?

卖: 你好在吗
狗: 在的
卖: 呵呵

呵呵是个啥思想感情…, 所以我要回一句去洗澡了么?

Let it go

说起音乐, 今年另一首被单曲循环很久的, 是电影 冰雪奇缘 的主题曲 随它吧, 英文原版是 Let it go (Frozen). 其实也谈不上哪个语言是原版了, 因为迪士尼是 25 种语言同时发布, 不同版本的词都各有千秋 (中文有大陆普通话, 台湾国语, 香港粤语三个版本), 而且每个语言又有电影插曲版和单曲版, 又会有不一样的气势. 我个人比较喜欢大陆插曲版, 词和电影场景结合的非常好, 大陆的片尾曲版词有点太正式了, 粤语版更是过于文绉绉, 跟电影场景不是很搭. 大陆插曲版演唱者胡维纳, 在芒果台我是歌手里作为合声歌手出镜率也蛮高的, 似乎之前也不算是默默无闻. 电影很赞, 因为有些迪士尼音乐剧的感觉, 里面的插曲很多也都很好听, 强烈推荐

筛选了下主流的官方版本, 用虾米播放器列出来

(看不到虾米播放器的请戳 Frozen 原声碟: http://www.xiami.com/album/1482417245)

然后列一下在 B 站听过的各个很赞的版本:

上次那个 Calculasian 人声乐团的版本, 一样很赞, 优酷如下

(看不到优酷播放器的直接戳去优酷: http://v.youku.com/v_show/id_XNjk4Njg5OTY0.html)