承接上集《网站技术分析报告之——去哪儿(上)》,呵呵,文章太长了,要是放到一篇大家看着眼累,所以分成两篇。
首页分析
首先还是来看首页,我觉得去哪儿的网站是优化得比较好的网站之一了,去哪儿的首页一共有114.9k,共41个请求数,个人认为请求数有些过多(主要是广告部分),可以适当降低请求数。
静态文件
去哪儿的静态文件似乎并非统一放在独立的服务器上,而是不同的频道有不同的静态内容服务器(我指的是逻辑服务器),像source.qunar.com,hotel.qunar.com等等,这样做有好处有坏处,好处是各项目组(我认为qunar不同频道是同不同的项目组独立负责的,这样有利于产品化)管各自的静态文件就ok了,坏处是不利于统一管理。我建议可以这样,把静态文件统一部署到一台/组服务器,各频道可以采用不同的逻辑服务器放置静态文件。这样便于统一管理,特别是去哪儿JS静态文件比较多,便于统一做CDN,因为动态内容和静态文件采用的CDN技术不一样,价格也不一样,有利于节省成本。
图片去哪儿首页的图片非常少,少得让人吃惊,但你并不觉得这个网站太难看,反而觉得很清爽,我认为图片应该尽可能少,图片只是在文字不能传达某个意思的时候才使用图片,这样可以起到画龙占睛的作用,也有利于SEO,当然图片壁纸站除外。
压缩
服务器上有启用Gzip压缩,有利于减小传输量,特别是对于去哪儿采用定时生成JSON静态数据的情况下,Gzip更能发挥作用。同时CSS文件,也有采用去注释和空行的压缩方式。但是我不明白的是,为什么有些javascript却没有经过压缩呢?例如在文件:http://hotel.qunar.com/scripts/hotel/recommandHotels.js?15182155276,不仅可以看到换行,还可以看到明显的注释
数据与实现分离
实际上就是指CSS/JS和Html以及数据,有没有很好地分离,我觉得这方面,去哪儿还是做得不错,首页的HTML代码非常轻巧,但有点我不明白,为什么去哪儿并未完全采用Div + CSS,而在首页还掺杂有Table呢,我觉得去哪儿的首页并没有需要用到Table的地方,完全可以全部采用Div+CSS进行布局。如果我没估计错的话,去哪儿的首页应该也是自动生成静态页面,并且是采用xml+xslt或者类似的方式,因为它源代码的空行方式很类似于xml+xslt的结果。
广告
相比去哪儿的版面来说,首页广告是非常之多,我觉得可能比新浪的广告比例还要高,但你完全没有不舒服的感觉。我想一方面,是去哪儿的广告内容和网站主题很匹配,主要是机票和酒店类的广告,另一方面,是由于广告位置以及广告与网站的溶入度非常高,说得白一点,就是去哪儿给广告穿了一件迷彩服,一般人以为不是广告,实际上他是广告。
我认为去哪儿的广告点击率应该很高,起码不低。首先,在颜色的配置上,去哪儿的广告颜色与整个页面一致,广告没有太明显的标识,这样有利于用户点击广告,特别是对于对网站不熟悉的用户,很容易受这些广告的诱惑去点击广告。但从另一个角度来说,广告主所得到的回报率可能会偏少。从我的观察来发现,越是菜鸟的用户,越容易点广告,但点完广告带来的价值偏少,而成熟的用户点击广告都是比较理性,给广告主带来的回报率会比较高。
URL/域名
去哪儿每个频道都有一个二级域名,并且还有其它更多的二级域名,一方面,二级域名有利SEO和用户记忆,但过多的域名,也难于管理。我不觉得目前去哪儿需要这么多的二级域名,缩少到5-8个即可。
总结
我个人认为,去哪儿的技术上应该是比较不错的,像一些细节的地方都有作处理,但是也有些需要改正地方,如没有防止数据采集(或者灵敏度太低),就算不担心数据被利用,也应该考虑到对服务器的压力;JS/CSS文件过于分散,JS代码没有进行清理与压缩(不是指gzip);HTML代码还可以更加简洁一些,有些代码完全是很无聊的嵌套,可以再行精简,加快浏览器的解析。
网站技术分析报告系列推出预告,敬请期待。携程网,51.com,wo.116114.com
后记
上面的分析报告是在去Qcon大会之前写成的,为了保证它的原汁原味,我没有作任何修改。我记得在Qcon大会上的吴永强说他们的数据是实时抓取的,就这一点,我谈谈我的看法,我认为实时抓取是不可能的,虽然机票这个东西价格变化很快,但肯定不可能做到实时抓取。原因如下:
第一、如果是全部都实时抓取,去哪儿的带宽和服务器都受不了,就算做到了,也不经济
第二、以去哪儿每天100万以上的访问量,如果是实时抓取数据,被抓的网站受不了
我认为比较可行的办法是这样的,去哪儿抓取的网站应该分为两种,即合作伙伴和非合作伙伴,合伙伙伴比较好说了,他们可以提供API接口,这部分的机票信息肯定是实时的。另一种是非合作伙伴,这些网站应该有一个缓存策略,根据去哪儿以往去这些网站抓取的数据分析他们机票的更新速度来确定缓存失效时间。去哪儿有一个爬虫根据更新策略把数据抓到缓存中,这样用户在请求的时候,实际上是在读这个缓存(生成JSON数据)。不知道去哪儿现在是不是这样的方法呢?
本文来自涂雅[http://iove.net/],原文链接:http://iove.net/archives/1819.html,网站转载请注明来源于涂雅并保留原文链接,否则视为侵权。
嗯,或者你也可以收听我的微博,腾讯微博(主要用这个,其他的看我的个人介绍)
我写博客常常出现错别字,常常错得还很离谱,有时候我自己看了第二遍都骂我自个儿,但我又不习惯重复审查,纠结啊...各位看到啥错别字或者不明白的地方,请给我留言指出来,感谢感谢。
gmail.com
10个评论在 "网站技术分析报告之——去哪儿(下)"
2010-7-30 01:13
倒是很期待你对大众点评网的分析呢
2010-5-10 15:34
为什么cto否认,我想有一个原因是,它对外的口号打的是实时搜索,如果不实时,可能用户就有怀疑了
2010-5-7 21:10
写的分析不错,应该是专业的seoer,多多学习了
2010-5-8 09:07
非专业的,非SEOer,程序员,哈哈
2010-5-6 09:21
我来指一点
.qn_gd730 {
width:730px;
}
像qn_gd730这样的命名,如果有一天你该类的宽度想增加到800px怎么办?
如果只改改width,以后估计维护就困难啦,不然的话就要改类属性,改类名,还要改HTML文档。
所以,应该使用语义化的标签,而不是结构化的标签。不要试图使用类名去描述样式的结构
2010-5-6 11:52
呵呵,你的建议很好,我一定将你的建议转给去哪儿的相关人员,也欢迎大家多挑刺,我一定转给他们。我抛了块砖,大家把玉都抛过来吧
2010-5-6 09:15
“我觉得去哪儿的首页并没有需要用到Table的地方”
我觉得适当的地方用表格还是可以的,像很多网站的表单都是用表格来做的。
在裸奔情况下,表格的显示更加直接明了
2010-5-6 11:53
每一个html元素都有他的作用,table看起来很方便,但不利于控制,也不利于css和html分离。对于一些日历或者表格式的来说,table比较适合
2010-5-5 13:31
分析的很到位,不过“二级域名有利SEO”这句不太认同,理论来讲二级分类如:www.qunar.com/hotel更有利于首页权重的提升~
2010-5-5 13:40
二级域名从理论上来说权重要高一些,我没有实际的论据,关于这个这事情,网上SEOer也讨论得比较多,你可以google一下”二级域名 目录 权重”。不过我们如果从产品设计上来看,二级域名可以便于产品分离,比如说某个频道做大了,我们可以单独放到一个服务器上去,而目录就比如难。