WebClient läuft javascript
Habe ich ein. aspx-Seite, die einige JavaScript-Funktionen, die control-paging.
Kann ich diese javascript-Funktion über den Web-Browser mit der folgenden Methode innerhalb der WebBrowser1_DocumentCompleted
WebBrowser1.Document.Window.DomWindow.execscript ("somefunction();", "JavaScript")
Den webbrowser ist sehr langsam und ich bevorzuge die Verwendung System.Net.WebClient.DownloadString
.
Einige Weg, um dieses Skript ausführen mit der System.Net.WebClient
Methoden, die schneller sind, oder auf eine andere Weise?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, Nein.
WebClient
ist ein HTTP - client, ein web-browser.Einen HTTP-client folgt der HTTP-Spezifikation; die Tatsache, dass Ihr HTTP-requests Ergebnis in HTML ist irrelevant für den Kunden.
Einen web-browser, auf der anderen Seite, zusätzlich dazu, dass ein HTTP-client, der auch weiß, wie das Parsen von HTML-Antworten (und JavaScript-Code ausführen, usw.).
Es scheint, dass das, was du suchst nennt sich "headless browser", der unterstützt das laden von HTML und ausführen von JavaScript auf das DOM, genau wie Sie brauchen. Headless-Browser sind auch in der Regel Recht schnell im Vergleich zu normalen Browsern, da Sie nicht brauchen, um jedes rendering.
Gibt es mehrere headless Browsern. HtmlUnit (die umgewandelt zu laufen .NET) scheint wie eine gute Wahl, wie envjs (es ist in JavaScript geschrieben, die kann eingebettet werden in .NET). Leider habe ich keine Erfahrung mit, aber beide sehen super-cool, vor allem envjs. Update: eine nette, mehr up-to-date Liste von headless-Browser wurde veröffentlicht auf GitHub.
Gibt es auch andere alternativen der
WebBrowser
Steuern, die möglicherweise oder möglicherweise nicht schneller sein in Ihrem Fall, wenn Sie bleiben wollen mit einer Kontrolle.