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

pal*_*lig 15 javascript gmail

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

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

你有什么专家的想法?

mol*_*olf 7

简而言之:用于客户端性能.

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

需要另一个iframe才能使浏览器历史记录正常工作.它的工作原理究竟可以在看到实现在谷歌的封闭图书馆.

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


Tho*_*ini 5

它是用于反向 ajax 的“无尽帧”(当事件发生时服务器向客户端发送消息,而不是客户端向服务器询问某些内容的普通 ajax)。来自维基百科

\n\n
\n

动态 Web 应用程序的一项基本技术是使用隐藏的 IFrame HTML 元素(内联框架,允许网站将一个 HTML 文档嵌入到另一个 HTML 文档中)。此\n 不可见 IFrame 作为分块\n 块发送,这隐式地将其声明为\n 无限长(有时称为\n \xe2\x80\x9c 永远帧\xe2\x80\x9d)。随着事件的发生,iframe 逐渐充满 script 标记,其中包含要在浏览器中执行的 JavaScript。由于浏览器以增量方式呈现 HTML 页面,因此每个脚本标记都会在收到时执行。

\n\n

IFrame 方法的一个优点是它适用于所有常见浏览器。此技术的两个缺点是缺乏可靠的错误处理方法以及无法跟踪请求的状态\n 调用过程。

\n
\n


ant*_*r15 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)

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