【发布时间】:2015-01-24 13:27:46
【问题描述】:
我对 GWT 很陌生,进入 Vaadin 世界后我开始研究它。
从 wiki 阅读此内容:https://code.google.com/p/google-web-toolkit-doc-1-5/wiki/FAQ_DeferredBindingDefinition
当 GWT 编译器编译您的 Java 应用程序时,它会确定 它必须支持和产生的所有不同的“特质” 一个单独的、严格精简的应用程序版本 具体配置。例如,它生成不同的版本 Firefox 的应用程序文件比 Opera 的要多。
...
延迟绑定的另一个经典例子是国际化: GWT 编译器使用延迟绑定来生成一个完全 每种语言的单独版本的应用程序。为什么要一个 说英语的人必须下载您的应用程序的法语文本吗?
GWT 使用延迟绑定并将 Java 代码编译为针对目标浏览器优化的不同 Javascript,GWT 还可以为每种语言生成一个 JS 子集以允许 i18n。
现在,关于延迟绑定的解释,这都是在编译时完成的,但实际上在运行时,当服务器有传入请求时,用GWT编写的应用程序如何知道浏览器是Chrome,Firefox还是歌剧?它是否解析请求的 User-Agent 标头? (我会怀疑它,因为它不是那么可靠)它是否使用了一种 Javascript 的“引导”客户端代码,该代码在运行时快速确定用户的浏览器,然后向服务器发出异步请求以下载正确的为具有该语言环境的 that 浏览器优化的、特定于语言的 Javascript 代码?
魔法究竟是如何发生的?
感谢关注!
【问题讨论】:
标签: java javascript gwt cross-browser