为什么Gmail源代码没有显示任何HTML?

4
在Chrome浏览器中,如果你尝试查看Gmail收件箱页面的源代码(通过按下ctrl+u),它不会显示HTML代码,而是显示大量的JavaScript代码,大多数是JSON格式的。但你可以看到HTML头和meta标签。
我的问题是:
  1. 他们是否试图隐藏他们的代码?
  2. 他们是否使用某种JavaScript模板来提高性能?
  3. 将响应以JavaScript对象的形式发送是一种改进的最佳实践之一吗?

他们使用Javascript生成DOM。同时搜索像<div>这样的标签,它们是存在的。 - Ralf de Kleine
3个回答

2
他们试图隐藏他们的代码吗?

在某种程度上是的。他们使用Closure编译器来最小化和混淆他们的代码。

http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html

全球数百万谷歌用户使用诸如Gmail、Google Docs和Google Maps等JavaScript密集型应用程序。与全球开发者一样,谷歌员工希望更容易创建出色的Web应用程序,因此我们构建了许多工具来帮助我们开发这些(以及许多其他)应用程序。我们很高兴地宣布这些工具的开源,并自豪地将它们提供给Web开发社区。
闭包编译器是一种JavaScript优化器,可以将Web应用程序编译成紧凑、高性能的JavaScript代码。
他们是否使用某种JavaScript模板来提高性能?
是的。从同一个链接中可以看到:
Closure Templates
Closure Templates起源于对预编译为高效JavaScript的Web模板的渴望。Closure Templates具有程序员自然的简单语法。与传统的模板系统不同,您可以将Closure Templates视为组成用户界面的小组件,而不必为每个页面创建一个大模板。
“将响应以 JavaScript 对象的形式发送是否是某种改进的最佳实践之一?” 如果您正在尝试编写丰富的 JavaScript 客户端,则最好将应用程序分解为 JavaScript 对象。

1

像Gmail这样的复杂Web应用程序,使用JavaScript动态生成大部分页面内容。从服务器接收到的HTML主要是初始内容,用于在脚本加载时显示。


我知道这个功能,并在谷歌的 YouTube 开发频道中听到了有关它的讨论……你是否知道还有哪些网站如此大量地使用 AJAX,或者 Gmail 是其中唯一的例外? - brendosthoughts
我相信有很多网站像Gmail一样大量使用AJAX,但是动态生成页面内容甚至不需要AJAX。看看ExtJS的文档和示例:HTML文件可能只包含一些<script>标签和一个空的<body>,其他所有内容都由JS生成,即使没有使用AJAX来加载数据。 - Wyzard

-1

1)他们没有隐藏他们的代码。 他们使用Ajax来显示表单。 因此,当使用Ajax时,我们需要用JavaScript进行操作。 这就是你看到更多JavaScript而不是Html标记的原因。

2)基本的基础是Ajax。

3)取决于您的应用程序,您可以使用JavaScript对象发送数据。 并非总是这样做是一个好习惯。 JavaScript是客户端脚本。 在使用JavaScript时,请小心并检查应用程序的安全性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接