Für eine eigenständige JavaFX-Desktopanwendung verwende ich hostservices.showDocument(), um URLs im Standardwebbrowser zu öffnen. Aber in den meisten Fällen, wenn ich versuche, URLs mit dieser Methode zu öffnen, dauert es sehr lange (20-30 Sekunden), bis der Browser geöffnet wird. Gibt es einen bekannten Performance-Fehler oder hat jemand das gleiche Problem? Ich habe dieses Problem nicht mit awt.Desktop.getDesktop.browse() (Browser öffnet sich sofort), aber ich möchte nicht AWT-Stack in einer JavaFX-Anwendung verwenden.JavaFX: hostservices.showDocument() schlechte Leistung
Antwort
Es ist schwer zu sagen, wo Ihre Anwendung schief geht, aber es kann helfen, das Problem isoliert zu studieren. Probieren Sie das vollständige Beispiel aus, um die Latenz zu isolieren. Es öffnet mindestens so schnell wie Desktop#browse()
auf meiner Plattform, d.h. innerhalb einer Sekunde.
import javafx.application.Application;
import javafx.application.HostServices;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
* @see http://stackoverflow.com/a/37839898/230513
*/
public class Test extends Application {
private final HostServices services = this.getHostServices();
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Test");
Button button = new Button("Example");
button.setOnAction((ActionEvent e) -> {
services.showDocument("http://example.com/");
});
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 320, 240);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Nachtrag: Mit dem isolierten Testfall @Joey der Lage war, dass das Problem zu bestimmen
Hat mit
showDocument()
auftreten; tat nicht auftreten mit direktem Browserzugriff.Haben mit langen URLs auftreten; did nicht auftreten mit kurzen URLs.
Sind auf einem Computer aufgetreten; tat nicht auftreten auf anderen.
Der Täter scheint GDA G Data Internetsecurity "Verhaltensanalyse-Proxy" avkbap64.exe
, here diskutiert werden.
Nicht auf meinem PC (Windows 10), aber was ich jetzt herausgefunden habe, ist, dass die URLs, die ich öffnen möchte, sehr lang sind. Wenn ich versuche, eine kurze URL wie http://amazon.de zu öffnen, ist die Eröffnung sehr schnell. Aber lange URL zum Beispiel "https://www.amazon.de/gp/product/B00N9O8NPS/ref=br_asw_pdt-5?pf_rd_m=A3JWKAKR8XB7XF&pf_rd_s=desktop-1&pf_rd_r=24XXRB5870FJ9K6EYW51&pf_rd_t=36701&pf_rd_p=f174871c-54ea-44ff-a8bb-64ea261617fa & pf_rd_i = Desktop "dauert sehr lange wie ich beschrieben – Joey
Ich habe den obigen Code auf meinem Computer (Windows 8.1, Standard-Browser ist Firefox) getestet und es hat gut funktioniert. Öffnet fast sofort mit der angegebenen URL und mit den beiden URLs, die vom OP im obigen Kommentar bereitgestellt wurden. – ManoDestra
Scheint, ich bin der einzige mit diesem Problem. Vielleicht stimmt etwas mit meinem PC nicht. Aber was kann dieses Verhalten verursachen? – Joey
- 1. Schlechte Leistung mit CATransform3D
- 2. HHVM schlechte Leistung
- 3. Schlechte Leistung postgres sql
- 4. Schlechte camera2 Videoaufnahme-Leistung
- 5. Xcode 6.0.1 schlechte Leistung
- 6. Schlechte Leistung mit WindowsTokenRoleProvider
- 7. Schlechte Leistung Kontextmenü
- 8. Jboss Anwendung schlechte Leistung
- 9. MITMProxy schlechte Leistung
- 10. Schlechte Boost.ASIO Leistung
- 11. A * PathFinding schlechte Leistung
- 12. Schlechte Leistung Sqlite.net Erweiterungen
- 13. iphone: Schlechte UIImageView Leistung
- 14. Schlechte WebAPI-Leistung
- 15. Guava Sets.intersection schlechte Leistung
- 16. iOS5: UITableView schlechte scrollende Leistung
- 17. Schlechte Leistung bei Azure DocumentDB
- 18. Fehlerbehebung Azure Search schlechte Leistung
- 19. Schlechte Leistung mit Operator OR
- 20. HTML zu PDF - Schlechte Leistung
- 21. Formerkennung Neural Network schlechte Leistung
- 22. Schlechte ListView-Leistung auf Gluon
- 23. Schlechte Leistung durch Überschreiben der Java-Klasse?
- 24. PostgreSQL IN-Operator mit Unterabfrage schlechte Leistung
- 25. Boost Geist schlechte Leistung mit Alternative Parser
- 26. MySQL Store Image BLOB schlechte Praxis Leistung
- 27. Schlechte Leaflet.js Leistung im Internet Explorer
- 28. Schlechte Leistung von UIStackView in UICollectionViewCells
- 29. iOS UITableViewAutomaticDimension RowHeight Schlechte Leistung/Springen
- 30. Zend Framework sehr schlechte Leistung auf WAMP
Können Sie den Code, den Sie als Teil Ihrer Frage verwenden, bitte posten? – ManoDestra
Interessant, wusste nicht, dass es eine FX-Klasse für den Internetzugang gab. Gibt es einen Grund, warum die Verwendung des "AWT-Stacks" ein Problem darstellt? – XaolingBao