On 10/1/2010 08:11, Michael Van Canneyt wrote:
On Fri, 1 Oct 2010, Michael Schnell wrote:
On 10/01/2010 02:22 PM, Michael Van Canneyt wrote:
ExtJS has no such mechanism to my knowledge, but I'm not a reference.
last time I checked some months ago it was said to be a new feature,
but should work, even though I did not find anybody who has tested it.
This is necessary to overcome the asymmetry of the http protocol.
IMHO "Server-Events" are necessary to design a CGI program with some
complexity.
Well, I create seriously complex applications. No such mechanism was
necessary till now.
Hmm, How to do notify the user that the server has finished complex
work in the background without blocking the interface and/or creating
excessive http polling traffic ?
Define excessive polling ?
An easy to do (non complex) example for a good application for such a
method is a server that allows tow client to chat.
Moreover "server-Internal-Events" like from Timers, serial or
"direct" TCP/IP communication, thread-notification, ... are very
desirable and should be able to fire "server-events" towards the
client.
Why ? What could you possibly need to do that the server needs to
contact
the client ? Everything you need can be programmed in the client, in my
experience.
Above trivial example ("chat server")
Real-world: Imagine an "embedded" program automatically working with
some hardware interfaces and/or serial and/or TCP/IP connections. Now
you want to provide it with a "web" interface that allows a "user" to
connect to it and do configuration and monitoring. For monitoring this
method is essential: many "states" in the program permanently change
due to the work of the program and the external situation. These state
changes need to be shown in the remote browser with low latency and
without excessive communication overhead.
In my experience: keeping a connection open IS excessive communication
overhead and very unreliable to boot.
I thought like you, 12 years ago. Till reality kicked in. Faulty switches,
company firewalls and whatnot. Not all servers/firewalls support HTTP 1.1
(for a persistent connection) etc. Too many problems.
So you end up with polling anyway. 10 polls per second is enough to fool
the
human eye and doesn't stress the server too much.
Michael.
Aren't ExtJS Ajax calls asynchronous? The JavaScript code continues
after firing a call to the server. There is a "callback" event that we
can use when the server sent the reply back (and process success/failure
events on the call).
At least I had to do some things to NOT give back the control to the
user over the client side until the response arrives from the FPC server
CGI/FCGI app (like disabling all controls for example).
IMO Exjs and FPC/Lazarus works superbly (you need FPC and Lazarus from
the trunk SVN at the moment for it). You do not need ExtPascal at all.
AB
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus