如何解决VB中WebBrowser控件持续打开网页占用的内存

vb中添加了webbrowers控件。打开一个网页,然后手工操作,然后在打开另一个网页,再次手工操作,这个过程是一直循环的。随着程序运行的时间久了,任务管理器里面程序的内... vb中添加了webbrowers控件。打开一个网页,然后手工操作,然后在打开另一个网页,再次手工操作,这个过程是一直循环的。 随着程序运行的时间久了,任务管理器里面程序的内存占用越来越大。请问该如何释放webbrowers控件产生的内存呢?大概的代码:Private Sub Command2_Click() 展开
 我来答
满脸小忧伤
2010-10-05
知道答主
回答量:9
采纳率:0%
帮助的人:1.1万
展开全部
这个是不可能的,我做过类似的程序,打开的网页会持续在、占用内存,即使unload webbrowser也不行。我也试过在心form中加载webbrowser,用完后 unload form,但仍然不行。目前我解决这个问题的办法是,将程序分成两部分,一部分用于控制,另一部分专门用于打开网页,也就是说,每次需要打开一个网页的时候,控制部分会调用另一个exe打开,并返回想要的结果,然后让那个exe自动关闭。也只有关闭exe才能使webbrowser占用的内存释放掉。

还可以用另一个简单的办法,隔一段时间重启自己。不过这个虽然做起来简单,但在应用上有很多不方便和限制,发挥的余地更少。

如果没有用户与网页交互的需求的话,完全可以不用webbrowser控件,而是用inet控件或者API URLDownload。

inet控件相比webbrowser控件来说,占用的内存要小得多,因为它仅仅下载网页,而不下载网页中的图片或者内嵌网页。但它的缺点也是不能释放内存。只是比webbrowser稍微好点,并不能从根本上解决问题。它不能运行js,下载回来的也只是html源码,不过可以在下载页面之前用webbrowser控件访问一次指定页面,来完成登录操作,然后inet就会与webbrowser共用一个session,下载回来的页面就是已经登录之后下载的页面了。

URLDownload,这个东西基本不占用内存。不过其缺点就是如果要下载的页面需要自动登录的话,就不行了。也就是说,它只能下载回来网页源码,而不能使其中的js运行。也就是说,这个玩意只能用于不要求用户登录的网站。即,登录与不登录得到的页面源码是一样的才行。比如moko。而像renren那样的网站,就不能用这个了。

根据你的需求自己决定吧
元小翠044
推荐于2016-03-23 · TA获得超过8.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:89%
帮助的人:3198万
展开全部
这个是不可能做到的,但是可以通过别的方式来释放控件。
释放控件可使用动态控件来完成,释放的时候使用set xxx=nothing

Webbrowser控件相当于开了一个IE窗口,在不停浏览网页的同时为了提高性能自然会消耗一定的内存,这些类似缓存的内存消耗是没有办法释放的,除非把Webbrowser整个控件释放掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kirin_lu
2010-10-05 · TA获得超过131个赞
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:101万
展开全部
Webbrowser控件相当于开了一个IE窗口,在不停浏览网页的同时为了提高性能自然会消耗一定的内存,这些类似缓存的内存消耗是没有办法释放的,除非你把Webbrowser整个控件释放掉。

释放控件可使用动态控件来完成,释放的时候使用set xxx=nothing

另一个问题,为什么要想着去释放内存?是你的内存不够用了,还是只是你自己看着不爽?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晋城小牛
2019-07-08
知道答主
回答量:16
采纳率:0%
帮助的人:3.4万
展开全部
本人也遇到了这个问题,求解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式