Another JavaFX Application Thread

Jens Kapitza j.kapitza at schwarze-allianz.de
Thu Aug 6 11:17:50 UTC 2015


Am Donnerstag, 6. August 2015, 14:00:27 schrieb Rahman USTA:
> @Mike
> 
> JRuby brings me ~ +30 MB. I tried to use Nashorn also but it is so slow.
> I'm thinking to continue with WebView.
> 
> The question is why there is HTML 5 Web Workers. Why there is no like that
> for JavaFX threading model.
> 
> @Jens
> 
> Expensiveness comes from JavaScript code that runs on UI thread. Script
> execution takes long time normally. For example docbook conversion
> execution starts from here
> https://github.com/asciidocfx/AsciidocFX/blob/master/src/main/java/com/kodcu
> /component/HtmlPane.java#L56

i would replace:
   JSObject result = (JSObject) 
webEngine().executeScript(String.format("convertDocbook(editorValue,docbookOptions)"));
     return ....

with:



CompletableFuture<JSObject> future = CompletableFuture.supplyAsync(
() -> {
       return
(JSObject) 
webEngine().executeScript(String.format("convertDocbook(editorValue,docbookOptions)"));
}
);


    return new ConverterResult(future); <<< you should check if future is 
present

change your method an provide a consumer to call on completion an do not 
return the result (would be better)




--
Jens Kapitza



More information about the openjfx-dev mailing list