A software framework designed for remote XUL applications using POE, allowing for the creation of dynamic and interactive graphical user interfaces for web-based applications.
At the heart of POE::XUL is the concept of mirror objects, where each XUL element exists as a Perl object (POE::XUL::Node) in the server and as a DOM object in the client. The ChangeManager on the server and the javascript client library keep the objects in sync. Note that all element attribute changes in the server are mirrored in the client, but only the most important attributes from the client to the server.
POE::XUL currently uses a syncronous, event-based model for updates, but plans to change to an asyncronous, bidirectional model (aka comet) soon. XUL is only supported by browsers from the mozilla project (Firefox and xulrunner), limiting POE::XUL's use to general web applications. However, POE::XUL would make for powerful intranet apps.
The software is a fork of Ran Eilam's XUL::Node and differs in that it permits multiple windows, multimode content, and the async use of POE events during event handling. It also removes the use of the excessively slow Aspect and the heavy XML wire protocol. POE::XUL::Node's API is closer to that of a DOM element, and XUL::Node's dangerous autoloading of XUL::Node::Application packages has been removed.
The software offers examples in eg/ and comes with a SYNOPSIS that demonstrates how to use it. The package is imported using `use POE::Component::XUL` and is followed by `POE::Component::XUL->spawn`. It also offers methods like `boot`, `Click`, and `shutdown`. The software is easy to use but should be considered beta quality. The API may change, and the documentation may be incomplete.
Version 0.0406: N/A