小编AYK*_*AYK的帖子

如何在Chromium中加载页面时可靠地知道(以编程方式)

我在使用TChromium(DCEF1)的OnLoadEnd事件时遇到问题.

我有一个带有TButton和TChromium的表格.

按钮的OnClick事件调用一个函数,该函数列出已加载页面的形式.如果我等待页面完成加载然后单击按钮,此功能正常; 但是如果我从TChromium OnLoadEnd事件处理程序调用此函数,则永远不会调用回调函数,因此,我得到一个空列表.

按钮代码(将注释读入代码):

procedure TForm2.Button3Click(Sender: TObject);
var
  Q: TWebChromium;
begin
  Q := TWebChromium.Create(Chromium1); // <- class to access DOM
  Q.WebFormNames; // <- method to get forms name
  ShowMessage(Q.Forms.Text); // <- show forms
end;
Run Code Online (Sandbox Code Playgroud)

OnLoadEnd代码:

procedure TForm2.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer; out Result: Boolean);
begin
  if (browser <> nil) and (browser.GetWindowHandle = TChromium(Sender).BrowserHandle) and ((frame = nil) or (frame.IsMain)) then
  begin
    Button3Click(nil);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

获取表单名称的方法代码(将注释读入代码):

procedure TWebChromium.WebFormNames;
var
  Finish: Boolean;
  EndTime: TTime;
begin …
Run Code Online (Sandbox Code Playgroud)

delphi chromium tchromium

6
推荐指数
1
解决办法
3750
查看次数

立即评估CTE

我正在尝试优化包含多个CTE的非常长且复杂的impala查询.每个CTE多次使用.我的期望是,一旦创建了CTE,我应该能够直接指示这个CTE的结果应该在主查询中重复使用,而不是使用主查询再次对CTE中涉及的表进行SCAN HDFS操作.这可能吗?如果有,怎么样?

我正在使用impalad版本2.1.1-cdh5 RELEASE(build 7901877736e29716147c4804b0841afc4ebc9037)版本

hadoop impala cloudera-cdh

6
推荐指数
1
解决办法
262
查看次数

标签 统计

chromium ×1

cloudera-cdh ×1

delphi ×1

hadoop ×1

impala ×1

tchromium ×1