#action is the basic record for all actions. It means that each action has #action as its ancestor.
target specifies an element where this action will arise.
Here is an example of method calls:
unfolded to calls:
And here is example of property chained assignments:
which transforms to:
Objects passed over WebSockets channel from server to client are called actions. Objects passed over the same channel from client to server are called events. However events themselves are bound to HTML elements with addEventListener and in order to perform these bindings, actions should be sent first. Such actions are called event actions. There are three types of event actions.
Page events are regular events routed to the calling module. Postback field is used as the main routing argument for event module function. By providing source elements list you specify HTML controls values sent to the server and accessed with wf:q accessor from the page context. Page events are normally generated by active elements like #button, #link, #textbox, #dropdown, #select, #radio and others elements contain postback field.
Control events are used to solve the need of element writers. When you develop your own control elements, you usually want events to be routed not to page but to element module. Control events were introduced for this purpose.
All API events are bound to root of the HTML document.
Message box alert is a very simple dialog that could be used for client debugging. You can use console.log along with alerts.