首先要感谢黄老湿请来了大湿讲PPT
听大湿讲 PPT 听的热血沸腾,对 quickling 部分有个疑问
Facebook 页面切换是AJAX替换中间内容部分
好处是避免重复生成和下载共用部分(例如头尾)以节省服务器损耗和带宽还能提速
然后给URL后头加一个尾巴
好处是这地址复制给别人也能单独使用
(QQ空间不给力啊,刷新就去首页了…)
浏览器的前进后退历史记录等功能在特殊处理后也不会因为AJAX而痿掉
OK, 例如首页 http://www.facebook.com/
点了左侧的 messages
会AJAX从服务器拉中间部分的内容填进去
并把 URL 改为 http://www.facebook.com/#!/?sk=messages
当我们直接复制这串带着 hash (#后头这串)的地址给朋友,他们直接粘贴了访问的时候
浏览器请求 http://www.facebook.com/home.php
home.php里的脚本检测hash部分,
发现非空,
是#!/?sk=messages,
于是跳转到http://www.facebook.com/?sk=messages
依赖客户端做判断跳转?酱紫不是需要
服务器生成2个页面,
用户下载2个页面,
以及第一个页面hash检测脚本执行完毕之前的资源(因为脚本会阻塞后续)
为何不服务器直接根据用户请求的 URL 里的 hash 吐第二个页面给客户端捏?
混在一堆前端里头又不好意思问这个弱智问题,只好会后偷偷溜过去找大湿
大湿摸着我的头说: 我们也想啊,可客户端不发 hash过去
(一一!)
tail了一个 access_log 测试了一下,
果然如此
===毫无技术含量分隔====================
http://velocity.oreilly.com.cn/index.php?func=slidesvideos
这个 URL 包含的绝对是今年的性能和运维顶级盛宴
等有朝一日俺摸着别人头说啥啥啥的时候,肯定要谦虚的说:
“其实,我是一个运维”
回复 飞鸟客 取消回复