Version 2 (modified by amuller, 14 years ago) (diff) |
---|
Esta página inicia as discussões sobre a camada AJAX (Javascript e XML) centralizada do Expreso. A proposta inicial (protótipo) possui os seguintes componentes:
expressoAjax.js - Script base coder.js - Contém encode e decode de base64,md5 e url dom.js - Contém manipuladores de objetos na tela (formulários dinâmicos e etc...) dragdrop.js - Manipulador de soltar e arrastar lang.js - Tratamento de internacionalização no js xtools.js - Tratamento da parte XML
Além disso será ainda implementado:
- Janelas
- Efeitos em imagens
- Abas
- Editor de texto (ckeditor)
Como funciona
A idéia é que esta camada seja uma biblioteca ajax completa, como as outras de forma que seja possível utilizá-la em qualquer ambiente até mesmo fora do Expresso. Quando o módulo é carregado, antes da página principal começar a ser processada diversos códigos da API do Egroupware começam a ser executados. Neste ponto é incluído o script base da lib Ajax. Esta base encarrega-se de criar o objeto expresso no escopo do javascript.
Para utilizar qualquer um dos componentes (que não são carregados automaticamente) basta executar o script:
expresso.require('coder.js'); // Neste momento é carregado e instanciado o objeto coder que pode ser usado como var codigo = expresso.coder.base64_encode("string");
Requisições em Background
Esta implementação permite o programador fazer requisições em background
var handler_folders = function (data) { alert(data); }; cExecute ("expressoMail1_2.imap_functions.show_folders", handler_folders);
Esta requisição hipotética chamaria show_folders da classe imap_functions no módulo ExpressoMail?
expresso.connector.cacheNextRequest(); cExecute ("$this.imap_functions.show_message&uid=100", handler_message_show);
Esta requisição chama show_message do módulo corrente, e grava o resultado na memória para as próximas requisições
expresso.connector.purgeCache(); cExecute ("$this.imap_functions.delete_message&uid=100", handler_message_show);
Esta requisição chama delete_message do módulo corrente, e apaga os resultados gravados anteriores