`
_Yggd
  • 浏览: 89286 次
  • 性别: 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泪流满面呀
分享到:
评论

相关推荐

    用VSCode打开TXT文件显示乱码

    用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode打开TXT文件显示乱码用VSCode...

    word文档打开是乱码怎么办.docx

    Word 文档打开乱码解决方法总结 在使用 Word 文档时,经常会遇到打开文档乱码的问题,这是一个非常常见的问题。导致 Word 文档打开乱码的原因有很多,包括文档内容损坏、编码不兼容、宏病毒等等。本文将总结六种...

    解决 DBF 文件 Excel打开乱码

    有些时候 会遇到生成的DBF文件使用Excel打开 出现乱码,这次在网上收了些资料,终于解决了DBF 文件Excel打开时乱码的问题

    百度浏览器打开出现乱码怎么办?.docx

    解决百度浏览器打开出现乱码的方法 在实际使用中,用户经常会遇到百度浏览器打开出现乱码的问题,这种情况会对用户的浏览体验产生严重的影响。因此,解决百度浏览器打开出现乱码的问题就变得非常重要。本文将详细...

    复制vs2010中的代码 中文成乱码

    标题 "复制vs2010中的代码 中文成乱码" 涉及的问题是,在使用Visual Studio 2010(简称VS2010)编辑器时,当尝试复制包含中文字符的代码,粘贴到其他地方时可能会出现乱码现象。这通常与编码设置不一致有关。在编程...

    前后台传值乱码问题万能思想,通用

    在IT开发过程中,前后端数据交互是一个常见的环节,而乱码问题则是许多开发者头疼的问题之一。"前后台传值乱码问题万能思想,通用"的主题着重于解决这个问题的通用思路,而不是具体的代码实现。以下是对这个主题的...

    解决Arcgis10中dbf文件用EXCEL打开乱码问题.docx

    ### 解决Arcgis10中dbf文件用EXCEL打开乱码问题 #### 背景与概述 在GIS(地理信息系统)领域中,ArcGIS是一款广泛使用的软件,由ESRI公司开发。用户经常需要处理大量的空间数据和属性数据。在ArcGIS中,属性数据...

    蒙古文字体在谷歌火狐浏览器中显示乱码问题设置

    蒙古文字体在谷歌和火狐浏览器中出现乱码的问题,通常是由于浏览器无法正确识别或支持蒙古文的编码格式导致的。蒙古文有其独特的字符集和编码方式,不同于常见的Unicode或者ASCII编码,因此需要进行一些特定的设置来...

    解决方案_EXCEL打开Tableau导出数据存在中文乱码情况的解决方案

    解决方案_EXCEL打开Tableau导出数据存在中文乱码情况的解决方案 在日常工作中,我们经常会遇到从Tableau中导出数据到EXCEL时出现中文乱码的情况。这是因为Tableau导出数据时只能选择CSV文件,而在简体中文环境下,...

    csv文件中文会乱码工具

    excel打开csv文件中文乱码问题,将乱码文件拖到此工具就可完成转码,正常显示中文。

    IE8百度搜索乱码的解决办法

    出现此问题的主要原因是百度搜索与IE8之间编码设置的不兼容性。默认情况下,IE8使用的编码格式可能与百度搜索期望的编码格式不同,尤其是在处理非英文字符时。百度搜索通常支持UTF-8编码格式,而IE8在某些情况下可能...

    Lua文件反编译汉字乱码处理

    至于"LuaChineseCharDeal",这可能是项目的主要代码文件或资源文件,里面可能包含了处理汉字乱码问题的C#代码实现。 总结来说,解决Lua文件反编译后汉字乱码问题,关键在于识别和处理正确的字符编码。通过检查和...

    stm32笔记:解决mdk编辑代码时的各种乱码问题

    STM32笔记:解决MDK编辑代码时的乱码问题 在进行STM32嵌入式开发时,我们经常会使用Keil uVision(MDK)作为集成开发环境(IDE)。然而,由于各种原因,比如文件编码不一致或者IDE设置不当,可能会导致在MDK中编辑...

    VS2010代码粘贴到word乱码解决

    SDK 实作VS2010复制中文乱码修复源文件 当复制VS2010中带有中文字符的代码到Office(Word, Excel, PowerPoint, Outlook)时, 在中文字符后面会被添加一到三个乱码。比如复制"中文字符",粘贴到word就会变成(中D文?...

    在Matlab 里复制代码到word产生中文乱码的恢复方法

    在Matlab下复制代码到word下,因西文字体缺失中文字符(尽管matlab里可以正常看到中文),其中的中文注释复制到word文件后会变成字母型乱码。本文教你怎么恢复这些乱码。

    仿百度竞价右下角浮动效果代码 修改传值乱码

    http://topic.csdn.net/u/20100610/09/ff34f95e-d78d-4d28-96b1-1bb331b6ae31.html 仿百度竞价右下角浮动效果代码 以上是我发的关于此文件的一个传值错误 感谢网友lihui_shine的帮助

    解决Arcgis10.2.2中dbf文件用EXCEL打开乱码问题.zip

    而Excel可能默认使用的是不同的编码方式来解析这些文件,这就会导致字符显示错误,看上去像是乱码。 2. **文件头信息错误**:dbf文件的头部信息可能没有正确地指示其实际使用的字符集,这可能导致Excel无法正确识别...

    解决Arcgis10.2.2中dbf文件用EXCEL打开乱码问题

    在使用ArcGIS 10.2.2的过程中,可能会遇到一个常见的问题,即当尝试用Microsoft Excel打开关联的dbf文件时,数据出现乱码。dbf文件是Esri的地理信息系统软件ArcGIS中用于存储表格数据的格式,通常与.shp文件一起使用...

    文件下载 乱码 文件损坏 打开undefind等几个坑点

    前端请求二进制文件流,返回的是乱码,如下图: 这个时候先别急着找后端,只要能下载生成想要的文件,文件打开内容是正确的都好说.下面总结几种生成导出的写法: 一. a标签点击下载 let blob = new Blob([res.data], {...

Global site tag (gtag.js) - Google Analytics