Ho un modulo che ha un componente TWebBrower
che carica un documento HTML. I dati relativi al documento HTML viene aggiornata ogni pochi secondi, a volte più volte al secondo e aggiornare il valore in Delphi usando:Ottimizza la colorazione di TWebBrowser per ridurre l'utilizzo totale della CPU
DOMDocument.getElementById(elementID).innerHTML := someValue;
Il problema è che voglio bloccare la finestra/browser web per evitare che la pittura/aggiornamento fino a quando tutti i miei aggiornamenti sono completi. C'è un modo per fare questo? Sarebbe una chiamata a
SendMessage(WebBrowser.Handle,WM_SETREDRAW,0,0);
vorrei qualche aiuto per ottimizzare il codice in modo che il mio utilizzo totale della CPU non è continuamente alta.
L'interfaccia 'IViewObject' ha le funzioni' Freeze' e 'UnFreeze' che potrebbero essere utili per questo. Proverò a preparare un esempio. – TLama
Penso che abbiamo bisogno di vedere il codice reale qui (incluso l'HTML). 'WM_SETREDRAW' funziona davvero (in un test molto limitato che ho fatto). ma dal momento che 'innerHTML' funziona in modo asincrono, penso che sarebbe un problema sincronizzarlo ... – kobik
@kobik, ma se si dice che' innerHTML' è asincrono allora temo che anche 'IViewObject' non sia d'aiuto. Dovrebbe essere un po 'di controllo per lo stato pronto. – TLama