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á.
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
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.
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
Sobrecarga de recursos al usar la clase WebBrowser
- Adjuntos
-
- WebExplorer.zip
- (7.36 KiB) Descargado 151 veces
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es
- 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
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
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
Re: Sobrecarga de recursos al usar la clase WebBrowser
Muchas gracias por contestar
Saludos
Saludos
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es