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
Responder
Avatar de Usuario
bingen
Mensajes: 565
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Sobrecarga de recursos al usar la clase WebBrowser

Mensaje por bingen »

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
Adjuntos
WebExplorer.zip
(7.36 KiB) Descargado 151 veces
BiSoft Desarrollo de software profesional
http://www.bisoft.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Sobrecarga de recursos al usar la clase WebBrowser

Mensaje por ignacio »

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
Adjuntos
WebExplorer.zip
(4.82 KiB) Descargado 142 veces
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
bingen
Mensajes: 565
Registrado: Lun Jul 07, 2014 8:17 pm
Ubicación: Bilbao
Contactar:

Re: Sobrecarga de recursos al usar la clase WebBrowser

Mensaje por bingen »

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