In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Sobrecarga de recursos al usar la clase WebBrowser

Foro público de Xailer en español
User avatar
bingen
Posts: 378
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Sobrecarga de recursos al usar la clase WebBrowser

Postby bingen » Thu Jul 04, 2019 1:05 pm

OS adjunto un proyecto en el que se viualizan direcciones en el maps.
Si se visualiza el administrador de tareas ,el ejecutable va aumentando de tamaño hasta el infinito y más allá. :D
Creo que no se llega a cerrar del todo los recurso del objeto WebBrowse.
Estoy con un proyecto de verificación de direcciones en maps y hacen decenas de llamadas a WebBrowse hasta que peta y se sale de la aplicación.
Saludos y gracias por vuestro trabajo
Attachments
WebExplorer.zip
(7.36 KiB) Downloaded 4 times
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
ignacio
Site Admin
Posts: 8535
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Sobrecarga de recursos al usar la clase WebBrowser

Postby ignacio » Thu Jul 04, 2019 8:28 pm

Hola Bingen,

Lo primero que me ha extrañado al ver tu ejemplo es el uso de un módulo WebBrowser.prg. Esto no es necesario en Xailer 6 e incluso está desaconsejado, ya que como has podido ver tu mismo, la versión de TWebBrowser da constantemente mensajes de que estás usando un navegador muy antiguo. Por lo tanto lo primero sería eliminar ese módulo y utilizar el control que suministra Xailer 6.

Incluso cambiando el módulo y usando el de Xailer 6 observo que se producen consumos excesivos de memoria, sobre todo si se realizan las operación de carga y cierre muy rápido, pero es muy fácil de solucionar el problema. Tan sólo hay que cargar el formulario del WebBrowser una ÚNICA vez.

Pasos a realizar:
1) oWebBrowserForm:lHideOnClose := .T.
2) Añadir un control TWebBrowser al form1
3) Eliminar la creación de un control TWebBrowser en la creación del TBevel
4) En el cierre del formulario navegar a 'about:blank'
5) Crear una DATA en form2 para guardar la instancia de form1
6) Instanciar form1 una sóla vez si es NIL

Adjunto el proyecto modificado

Nota: De esta forma sólo se instancia una vez el OCX y el consumo de memoria que se pueda observar, entiendo que se debe al propio cache que mantiene Internet Explorer
Attachments
WebExplorer.zip
(4.82 KiB) Downloaded 9 times
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
bingen
Posts: 378
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Re: Sobrecarga de recursos al usar la clase WebBrowser

Postby bingen » Mon Jul 08, 2019 11:22 am

Muchas gracias por contestar
Saludos
BiSoft Desarrollo de software profesional
http://www.bisoft.es

Return to “Spanish”