GET:链接器和代码拆分

时间:2012-09-07 10:20:27

标签: java gwt linker fragment

在GWT-land中,“链接器”和DFN代码拆分之间的关​​系是什么?为什么链接器需要支持codesplitting,为什么有些链接器不支持它呢?您如何选择应用程序应使用哪个链接器以及决定哪些因素?

1 个答案:

答案 0 :(得分:12)

主要链接器(还有辅助链接器,但它们不参与此处)负责创建托管已编译JS代码的* .js或* .html文件,当然还有如何引导/加载它们进入浏览器。

一旦你知道这一点,很明显他们必须明确支持代码分割。

例如,xs(跨站点)链接器将整个脚本包装在匿名函数中,因此它不会“污染全局范围”(技术也称为模块模式)。然后它不能动态地将一些其他脚本注入到可以访问其内部的页面中。 sso(单脚本)链接器具有相同的限制。

std(iframe)链接器将您的应用加载到动态创建的iframe中,该iframe用作沙箱:iframe的全局范围不是主机页面的全局范围。然后,它可以在iframe中动态注入一个脚本,该脚本可以访问已存在的所有内容(iframe的全局范围)。

但实际上,你不必选择你的应用应该使用哪个链接器:坚持使用xsiframe(你必须明确激活它,但暂时是)。它结合了xs链接器的跨站点友好性和std链接器的iframe沙箱。

您可以期待在将来的GWT版本中弃用所有其他链接器(可能除了sso之外),并最终完全删除;并且std链接器将被xsiframe链接器替换为默认链接器。