| Deutsch English Français Italiano |
|
<102ra2b$u1kq$1@solani.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock <janburse@fastmail.fm> Newsgroups: comp.lang.prolog Subject: Java and OpenJFX or JavaScript and WHATWG? Date: Tue, 17 Jun 2025 10:47:07 +0200 Message-ID: <102ra2b$u1kq$1@solani.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 17 Jun 2025 08:47:07 -0000 (UTC) Injection-Info: solani.org; logging-data="984730"; mail-complaints-to="abuse@news.solani.org" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.21 Cancel-Lock: sha1:A/jiRUbvMTqZReGWw5yiwbPTKkk= X-Mozilla-News-Host: news://news.solani.org:119 X-User-ID: eJwFwYEBACAEBMCVCO8bp8L+I3QXBsVLR8BjYpJI2qKoCX3V2972SgdDa/Ko2a2dUO6+QFY1LkuFdWTxAycvFME= Somebody wrote: > noticeable lag waiting for completion candidates A lag wouldn’t be a problem. I guess the problem is that the GUI gets blocked, right? If your GUI has tasks and timers, you could try the follow: - Debouncing Timer: To start ghost after lets say 1000 ms, the debouncing is to assure that the ghost appears after the last edit and not after the first edit. - Abortable Task: The ghost is then computed asynchronously via a task. But this task is again tied to the debouncing, means the task gets aborted if the end-user shows impatience. I checked a couple of GUI tools to do that. Had rather bad experience with Java and OpenJFX, so I am returning back to the JavaScript and WHATWG with my ongoing research. SVG tags were not working out the box https://wiki.openjdk.org/display/OpenJFX/Main No runLater(), any task can any time modify the DOM! https://whatwg.org/ But maybe there are other GUI frameworks which can do it. If tasks are also used for highlighting I belive they can be also run asynchronously without explicitly juggling with some queues, just await the asynchrous routine that the task would execute, in a instrumentation loop, and ignore the aborts, since an abort is now good news and not bad news, it only indicates that the end user did an edit and that the task will be restartet.