`
_Yggd
  • 浏览: 85884 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

打开google前端 代码看了看,是乱码的,感到好奇,百度之,看法分享给各位

阅读更多
源:http://www.zhihu.com/question/20029699?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title



对于想更深入了解的,可以参考一下雅虎的前端优化XX条(记得最开始看的时候还是14条,现在已经34条了,天……)

对于已经看过这些原则,早已了然于胸的,我再补点料。
google首页可能是有史以来pv最高的页面,其优化也比较极端,极端到以下两种做法我在别的网站从来没见到过(我没有详细考证google的其他页面是否也有这样的处理):

1. 在服务器端处理跨浏览器兼容,根据User-Agent返回不同的页面内容
对于跨浏览器兼容,传统的做法包括:用js判断浏览器类型做不同处理、使用css hack、浏览器私有标记/属性。总而言之,在浏览器端搞定兼容性。
但这并不是唯一的解决方案,更不是对用户最优的。如果能承受工作量,可以做到在服务器端处理,则兼容性相关的代码不必传给用户,可以节省相关的网络流量。而google首页就是这样做的。
可以给firefox装个ua switcher,一试便知。

我觉得,大多数网站,可能没有这种页面简单,而又pv巨巨高的页面来玩这套。但将工作量向服务器端转移,可以成为一种思路,比如jquery库中,很多代码在处理特定浏览器中的问题,那不妨分浏览器编译出若干版本,在体积和执行效率上都有优势。

2. 为减小页面体积,不惜违背规范
这个要只是属性不写双引号之类的,也就不拿出来说事了。
但你打开google首页,找不到</body>和</html>,这是故意的。
我仿佛记得历史上,在google首页还没有+1的时候,曾经看过对ie一些版本故意不声明doctype和<body>,直接写内容,在quirks模式下排版,从而将体积压缩至极限的做法,不过现在无从证实了。
(注:http://g.cn目前仍是这种风格,不过http://g.cn不同浏览器的代码是相同的)

这种玩法,我觉得看个热闹就行吧,玩火容易烧到自己。不过倒是可以顺便消除一些对规范,对w3c验证的宗教化心态。毕竟应该重视的,是最终效果和源代码。html这种中间产物,够用就行:)



google的前端绝大部分是通过javascript库Closure来实现的,通过javascript代码动态生成html代码,所以Googler们不直接写html,也就不在意html是否整齐可读,只需维持javascript代码的可读性和可维护性即可。

此外,Closure引进了javascript编译的概念,可以通过编译,对javascript代码进行优化,压缩,混淆等操作,也就实现了节省流量的目的。

前面有朋友提到Google主页不规范的问题,正是由于使用了Closure。仔细观察,就会发现页面源代码被大量混淆的javascript代码占据,留下一些零散的html作为占位符,或者存储一些常量。如果使用firebug之类的前端开发工具的话,就能看到被javascript动态改写后的规范的HTML DOM了。

对于google好多geek的思维我表示QAQ  TAT泪流满面呀
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics