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.