缓存 – HtmlUnit比GUI浏览器慢?

缓存 – HtmlUnit比GUI浏览器慢?,第1张

概述为什么 HtmlUnit比GUI浏览器慢得多?例如,HtmlUnit在14秒内加载此页面 http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2(当CSS支持关闭时),而FF在5秒内加载(清除缓存后,支持CSS).我知道,现代浏览器在处理糟糕的JS代码时没有那么严格,而HtmlUnit是,但是这里的时间差异仍然是无法容忍的. 为什么 HtmlUnit比GUI浏览器慢得多?例如,HTMLUnit在14秒内加载此页面 http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2(当CSS支持关闭时),而FF在5秒内加载(清除缓存后,支持CSS).我知道,现代浏览器在处理糟糕的Js代码时没有那么严格,而HTMLUnit是,但是这里的时间差异仍然是无法容忍的.

有关如何加快使用HTMLUnit的任何想法?有没有人玩过HTMLUnit缓存?

解决方法 要回答你为什么这么慢的问题:

这纯粹是因为HTMLUnit有许多不利因素:

>它使用的编译语言运行,没有很多浏览器的原生优化,如firefox.
>它需要格式良好的XML而不是HTML(非严格),这意味着它必须将HTML转换为XML.
>然后它必须通过解析器运行JavaScript,修复代码的任何问题,然后在Java内部处理它.
>另外正如@Arya指出的那样,它一次只能请求一个东西,因此很多JavaScript文件会导致速度变慢,许多图像会导致速度变慢.

要回答有关如何加快速度的问题:

作为一般规则,我禁用(除非他们需要):

> JavaScript
>图片
> CSS
>小程序.

我还获得了源代码并删除了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());        }    }});

我注意到的其他事情:

> HTMLUnit不是线程安全的,这意味着您应该为每个线程创建一个新的线程.> HTMLUnit实际上会缓存页面

总结

以上是内存溢出为你收集整理的缓存 – HtmlUnit比GUI浏览器慢?全部内容,希望文章能够帮你解决缓存 – HtmlUnit比GUI浏览器慢?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存