使用GWT,并使用HTTPS在WebLogic上部署应用程序。
性能很差,使用F12开发者工具,我们可以看到blank.html被多次下载。这显然与GWT有关,但我们无法弄清楚原因。
以下是来自javascript:
defineSeed(2613, 2614, makeCastMap([Q$BaseModelData, Q$ModelData, Q$Theme, Q$Serializable]), Slate_0);
var SLATE;
function $clinit_GXT(){
$clinit_GXT = nullMethod;
IMAGES = new XImages_generatedBundle_0;
MESSAGES = new XMessages__0;
SSL_SECURE_URL = getModuleBaseURL() + 'blank.html';
}
这是来自GWT.java:
/**
* URL to a blank file used by GXT when in secure mode for iframe src to
* prevent the IE insecure content. Default value is 'blank.html'.
*/
public static String SSL_SECURE_URL = GWT.getModuleBaseURL() + "blank.html";
有谁知道在什么情况下调用blank.html?
谢谢!
答案 0 :(得分:0)
这是来自GWT.java:
这实际上来自GXT.java。
在创建<iframe>
元素时,会在少数情况下使用此功能,以便在您的网站使用SSL托管时,IE不会出错。实际上我只能在Layer.java
中找到一个使用它的案例(从GXT 3.1.1开始)。只有从https
网址加载的IE页面才会使用此功能。
Layer类使用它作为&#34; shim&#34;,一种支持上面的一些DOM元素的方法,并解决一些浏览器错误(通常是插件或iframe相关)。菜单和弹出对话框使用它来确保它们不会出现在&#34;下面。内容应该是&#34;以上&#34;。
这个文件非常小 - 只是足够的HTML来说服IE而不是iframe已正确加载,而且没有更多。它永远不会改变,并且应该几乎立即加载。
就性能而言,这应该只在菜单或窗口/对话框/工具提示显示时发生 - 这些通常不应该在应用启动时发生,至少不超过一两个窗口。此外,浏览器应该识别它正在加载相同的元素并正确缓存它,而不是多次加载它(尽管它可能会多次列入缓存)。如果服务器指示浏览器永远不会缓存文件,那么您应该考虑更改。
简而言之,这不太可能是任何性能问题的原因,至少在GXT本身是这样。如果您以某种方式在项目中的每个小部件上启用了填充程序,则不需要这样做。如果文件加载速度很慢,那么服务器配置可能会出现问题。
供参考,这是整个文件:
<html></html>