当前位置:C++技术网 > 资讯 > chtmlview Navigate 怎么判断请求超时

chtmlview Navigate 怎么判断请求超时

更新时间:2016-09-11 00:26:18浏览次数:1+次

当用chtmlview的Navigate成员函数去访问一个很慢的网站时,就会出现软件假死现象,怎么判断请求超时,或解决这个不让出现假死呢?


C++技术网解答:

    一般那种可能出现长时间等待,或者甚至可能一直卡住的情况,如果要让界面及时得到响应,或者能够有一个比较好的用户体验,一定要有一个超时机制。

    http协议本身就会有超时机制的,可以设置超时时间。你可以看到,浏览器一般访问很久都没有反应的网站的时候,通常显示为无法访问。因为超时时间内无法获取到应得的数据。

    你用chtmlview的Navigate成员函数去访问网站,就是浏览器行为。你应该考虑的,可以参考浏览器的做法。这个具体的实现我不清楚,但是应该是可以去设置超时时间的,这样可以让http内部自己去处理超时,在指定时间内没有取到数据,就返回给上层处理,这样你就可以得知超时了,就可以做对应的处理。如果,你不知道如何去设置超时时间,比如需要长时间去等待数据,那么为了保证用户体验,你可以用多线程来解决此问题。也就是,自己设置一个定时器,在指定时间内没有取回数据,就关闭取数据的线程,然后进一步处理。

    两种思路,一种是从源头上解决,一种是从结尾处解决。如果能够从源头解决,你就可以轻松处理。如果要适应能力更强,结尾处也要处理。万一源头无法处理,结尾处是你自己程序处理的,一样可以有效的控制超时时间,超时一到,就可以处理掉,以免假死,对用户体验好。

    我这里只能给你一个思路,具体实现需要你自己去进一步查资料来实现哦。