gpt4 book ai didi

java - GWT 如何为每个浏览器(例如浏览器)提供正确的 Javascript 代码?进行i18n和浏览器兼容?

转载 作者:行者123 更新时间:2023-11-28 19:24:34 24 4
gpt4 key购买 nike

我对 GWT 还很陌生,是在进入 Vaadin 世界后才开始了解它的。

从维基阅读此内容:https://code.google.com/p/google-web-toolkit-doc-1-5/wiki/FAQ_DeferredBindingDefinition

When the GWT Compiler compiles your Java application, it determines all the different "idiosyncrasies" that it must support, and generates a separate, tightly streamlined version of the application for that specific configuration. For example, it generates a different version of the application file for Firefox than it does for Opera.

...

Another classic example of Deferred Binding is internationalization: the GWT Compiler uses Deferred Binding to generate a completely separate version of the application for each language. Why should an English speaker have to download the French text of your application?

GWT 使用延迟绑定(bind)并将 Java 代码编译为针对目标浏览器优化的不同 Javascript,并且对于每种语言,GWT 还可以为每种语言生成 JS 子集以允许 i18n。

现在,就延迟绑定(bind)的解释而言,这都是在编译时完成的,但实际上是在运行时,当服务器收到传入请求时,用 GWT 编写的应用程序如何知道浏览器是 Chrome、Firefox还是歌剧?它是否解析请求的 User-Agent header ? (我对此表示怀疑,因为它不太可靠)它是否使用一种 Javascript“引导”客户端代码,该代码在运行时快速确定用户的浏览器,然后向服务器发出异步请求以下载正确的内容针对具有该语言环境的浏览器优化的、特定于语言的 Javascript 代码?

魔法是如何发生的?

感谢您的关注!

最佳答案

Does it uses a sort of a Javascript 'bootstrap' client side code which quickly determines at runtime the browser of the user and then makes an async request to the server to download the proper optimized, language specific Javascript code for that browser with that locale?

这正是发生的事情。有一个非常小的引导 javascript 文件 (yourmodulename.nocache.js),您可以从 html 页面加载它(使用普通的 <script> 标记)。此脚本使用 navigator.userAgent 确定浏览器类型,并从那里动态加载“依赖于浏览器”的部分(应该被缓存,因为它可能很大)。

在编译时,GWT 确定需要多少种排列(外部因素的组合,例如浏览器模型、资源语言等)。然后为每个组合生成一个结果 javascript 模块。
虽然您将部署所有这些文件,但每个客户端在访问您的网站时只会下载与他相关的文件。

关于java - GWT 如何为每个浏览器(例如浏览器)提供正确的 Javascript 代码?进行i18n和浏览器兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com