我现在已经使用过GWT了。我现在想知道为编译过程指定用户代理的目的是什么。我试图获得一些有关这方面的信息,但到目前为止我唯一可以得到的解释是创建适合浏览器的最终JS。我的问题是,浏览器之间有什么不同,它需要明确提到我们计划在哪些浏览器上使用它?因为最终结果是Javascript。是不是JS应该在所有浏览器上工作,因为它们都将实现JS?我能想到的唯一区别是CSS的差异,其中有必要的浏览器特定的css属性名称。在这种情况下,GWT编译的输出不能导致单个JS吗?我错过了什么?如果JS中存在一些差异,那么那些使用JS或jQuery或Angular等的人应该考虑什么?
我已阅读gwt文档的这一部分,http://www.gwtproject.org/doc/latest/FAQ_DebuggingAndCompiling.html - > .cache.html文件。但我不明白这究竟意味着什么。他们指的是什么问题?
答案 0 :(得分:3)
GWT应用特定于浏览器的优化。即使浏览器之间的javascript应该相同,特别是旧版浏览器也存在GWT所关注的差异(参见the documentation for JSExport关于IE和Canvas vs. VML中臭名昭着的XMLHTTPRequest与ActiveX)。
缓存文件(称为排列)特定于语言和浏览器,因此客户端只需下载所需的代码,而不是一个非常大的文件(使用GWT延迟加载)。
替换不同浏览器的实现的示例,请参阅https://stackoverflow.com/a/14466646/3906760(延迟绑定示例)。