|
TODO
logo: un giullare tipo quello delle carte francesi e la scritta Giocondo see what is bbcode aur-notify TODO: http://dev.mysql.com/doc/ patch vlan implement ComboBox, ComboEntry which respond to onChanged events search about: transfer of files from client to server with ajax read here http://www.kaijaeger.com/articles/the-monte-carlo-method-for-cross-browser-css.html check generated XHTML code with http://validator.w3.org/ check javascript library with http://www.crockford.com/javascript/lint.html consider adopting http://en.wikipedia.org/wiki/WAI-ARIA in the future what about contentEditable and designMode attributes applicable to iframes? consider using a throbber (see file://localhost/home/ant/webmaster-docs/ajax/Ajax%20(programming)%20-%20Wikipedia,%20the%20free%20encyclopedia.html) Since browsers do not (unless in public function __destruct() { $_SESSION["Giocondo_WID{$this->id}"] = $this; } * methods configure,cget should check key and values * erase DEBUG code sections * use serialization if necessary * i'm using & as GET parameter separator. Is there a better choice? * would it be useful to implement magic methods __toString, __set_state for some widgets? * generate indented HTML code (1 space for indentation level) * when label="" noborder should be drown for a Box * implement ignored parameter index of Text->insert * consider using mm (shared memory allocation) for session storage, see "Session Handling Functions" in PHP manual * see if other similarities exists (e.g. among buttons) and introduce other levels of the object hierarchy to catch them * see how to optimize array iteration with for and foreach (e.g. using references for foreach, avoid recomputing count for for) * full percent string support (see Label.php) * as a shortcut implement single option configuration through passing of a string instead of an array (option name is widget-specific, e.g. text for a Label, value for an Entry) * should percent string be cached as follows? # caches HTML translations of $options['text'] protected $text_translated = ''; ... public function configure($options) { parent::configure($options); if (array_key_exists('text', $options)) { $this->translate(); } } -- MATERIALE DISMESSO Giocondo AJAX Protocol (GAP) GAP is a simple string based one-way protocol. It encodes all informations needed by the client browser to update its GUI in response to an event in a compact yet ready to use way. A GAP response string can be empty (nothing to do) or consists of one or more GUI update actions. A NULL character (\0) is used to separate each action from the next. The client will parse and then execute update actions in stricly sequential order (see js/Library.js). There are only two kinds of actions: TODO 1. property set, e.g. for a Button: innerHTML = '%s' to be executable this instruction must be prepended by a: document.getElementById('w' + id). where id is the widget id number which is transmitted with the response |