Gmail的客户端Web架构有什么优势?

时间:2010-02-21 23:17:46

标签: javascript gmail

我只是想知道GMail遵循的客户端架构的优势是什么。 我的意思是页面上多个iframe的优点是什么;一个是html布局,另一个是所有的javascripts?

执行所有DOM操作不是更复杂吗? (你需要搜索js ifram< - > top< - > html iframe)。

你有什么专家的想法?

3 个答案:

答案 0 :(得分:7)

简而言之:为了客户端的表现。

因为GMail有很多Javascript(大约700 KB),所以下载和运行所有内容需要一些时间。通过使用单独的iframe,下载并运行Javascript不会阻止浏览器UI。流行浏览器将并行执行单独iframe中的脚本和UI事件。此方法还允许您在其他iframe 中为接口构建完整的DOM,而脚本仍在执行中。 This article describes阻塞脚本问题的常见解决方案。

需要使用另一个iframe才能使浏览器历史记录正常工作。如何正常工作可以在Google的Closure Library中的implementation中看到。

至于确保正确操作DOM的复杂性的影响:GMail中的UI组件的构造函数(也是Closure库的一部分)都采用可选的DOM辅助参数。此帮助程序绑定到特定的DOM,该DOM可能位于不同的框架中。操作不同的DOM完全内置于这些UI组件的设计中。

答案 1 :(得分:5)

我很确定iframe不是用于推送“反向ajax”的东西。 Gmail使用Google Closure Library的goog.net.BrowserChannel系统来处理这些系统,并使用xhr和activex htmlfile传输。 (见:http://closure-library.googlecode.com/svn/docs/class_goog_net_BrowserChannel.html

这就是我所知道的,但我想至少有一个框架可用于管理历史。

答案 2 :(得分:4)

这是一个用于反向ajax的“无限帧”(服务器在事件发生时向客户端发送消息,而不是客户端询问服务器的正常ajax)。来自wikipedia

  

动态网络的基本技术   应用程序是使用隐藏的IFrame   HTML元素(内联框架,其中   允许网站嵌入一个HTML   文件在另一个内部)。这个   隐形IFrame作为分块发送   block,隐式声明为   无限长(有时称为   “永远的框架”)。随着事件的发生,   iframe逐渐被脚本填充   标签,包含JavaScript   在浏览器中执行。因为   浏览器呈现HTML页面   逐步地,每个脚本标记是   在接收时执行。

     

IFrame方法的一个好处是   它适用于每个常见的浏览器。   这种技术的两个缺点是   缺乏可靠的错误处理   方法,和不可能性   跟踪请求的状态   呼叫过程。