title: Application locks while trying to access TWebbrowsers HTML
body: <p><strong>Edit</strong>
  Narrowed it down to this 1 line, </p>
  
  <pre><code>HTML := wb.OleObject.Document.documentElement.innerHTML;
  </code></pre>
  
  <p>which consumes the time... how can that be speed up?</p>
  
  <p>Using the following code my application can hang for 1-2 seconds while it tries to access the HTML of a page (Delphi XE).</p>
  
  <pre><code>function Button1Click(Sender : TObject);
  begin
     wb.navigate('http://10.0.0.154/stats');
     // Use a timer to poll the page - dont wait and process app messages
     timer1.enabled := true;
  end;
  
  procedure Timer1Timer(Sender : TObject);
  var
    HTML : WideString;
  begin
     If GetHTML(HTML) = true then
     begin
        Timer1.enabled := false;
        { do something }
     end;
  end;
  
  
  function GetHTML(var HTML : WideString) : boolean;
  var
    Document : IHTMLDocument2;
  begin
    HTML := '';
    Result := false;
  
    Document := wb.DOcument as IHTMLDocument2;
    If Assigned(Document) then
    begin
      try
        HTML := wb.OleObject.Document.documentElement.innerHTML;
        Result := true;
      except
        Result := false;
      end;
    end;
  end;
  </code></pre>
  
  <p>However I notice in my GetHTML method can take 1-2 seconds to return something and it locks UI.  Looking at the AQTime with Delphi XE it says that method call is slow (1-2 seconds). It's sporatic and I wonder if it fails when the page is still mid load.</p>
  
  <p>The page I am loading is an inhouse page, full of javascript and 500k big, I can't use the OnDocumentComplete because it fires before the page is even ready, even if I do a check on the ReadyState it still fires to early.</p>
  
  <p>Anyone able to shed some light, if their a faster way I can access the HTML of TWebbrowser? </p>