为什么 HtmlUnit 比 GUI 浏览器慢这么多?例如,HtmlUnit 加载此页面 http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2在 14 秒内(当 CSS 支持关闭时),而 FF 在 5 秒内完成(清除缓存后,支持 CSS)。我知道,现代浏览器在处理糟糕的 JS 代码时并没有那么严格,而 HtmlUnit 是这样,但这里的时差仍然是无法容忍的。
任何想法如何加快 HtmlUnit 的工作?有没有人玩过 HtmlUnit 缓存?
最佳答案
回答您关于为什么慢的问题:
这纯粹是因为 HTMLUnit 有很多反对它的地方:
回答您关于如何加快速度的问题:
作为一般规则,我禁用(除非需要它们):
我也得到了源代码并删除了ActiveX支持并重新编译。如果您想阻止代码加载这些额外的页面,您可以使用下面的代码来提供响应,而无需从网络上下载。
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());
}
}
});
我注意到的其他事情:
关于caching - HtmlUnit 比 GUI 浏览器慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691638/