为什么HtmlUnit比GUI浏览器慢得多?例如,HtmlUnit 在14秒内加载此页面http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2(当CSS支持关闭时),而FF在5秒内加载(清除缓存后) ,CSS支持).我知道,现代浏览器在处理糟糕的JS代码时没有那么严格,而HtmlUnit是,但是这里的时间差异仍然是无法容忍的.
有关如何加快使用HtmlUnit的任何想法?有没有人玩过HtmlUnit缓存?
要回答你为什么这么慢的问题:
这纯粹是因为HTMLUnit有许多不利因素:
要回答有关如何加快速度的问题:
作为一般规则,我禁用(除非他们需要):
我还获得了源代码并删除了ActiveX支持并重新编译.如果您想阻止代码加载这些额外的页面,您可以使用下面的代码给出响应,而无需从Web下载.
WebClient browser;
browser.setWebConnection(new WebConnectionWrapper(browser) {
@Override
public WebResponse getResponse(final WebRequest request) throws IOException {
if (/* Perform a test here */) {
return super.getResponse(request); // Pass the responsibility up.
} else {
/* Give the program a response, but leave it empty. */
return new StringWebResponse("", request.getUrl());
}
}
});
Run Code Online (Sandbox Code Playgroud)
我注意到的其他事情: