【发布时间】:2012-04-18 09:56:59
【问题描述】:
我有一个表单,它有一个 TWebBrower 组件,用于加载 HTML 文档。 HTML 文档上的数据每隔几秒更新一次,有时每秒更新多次,我在 Delphi 中使用以下方法更新值:
DOMDocument.getElementById(elementID).innerHTML := someValue;
问题是我想锁定窗口/网络浏览器以防止它绘制/更新,直到我的所有更新完成。有没有办法做到这一点?会打电话给
SendMessage(WebBrowser.Handle,WM_SETREDRAW,0,0);
我需要一些帮助来优化此代码,以便我的总 CPU 使用率不会持续高。
【问题讨论】:
-
IViewObject接口具有可能对此有用的Freeze和UnFreeze函数。我会试着准备一个例子。 -
我认为我们需要在这里看到真实的代码(包括 HTML)。
WM_SETREDRAW确实有效(在我进行的非常有限的测试中)。但是由于innerHTML是异步工作的,所以我认为同步它会是一个问题...... -
@kobik,但如果你说
innerHTML是异步的,那么恐怕即使@987654330@ 也无济于事。必须对就绪状态进行一些检查。 -
@TLama,谢谢,我会等待你准备的样本。
-
“如果我在这里发布代码会很长”是什么意思?然后把它贴在别的地方。如果您需要帮助,我们需要能够重现问题。或提供另一个较小的代码来说明您所说的内容。你的问题很模糊。
标签: delphi optimization delphi-2009 twebbrowser