And JavaScript wrath strikes again
Bom, eis que tentei começar as coisas pelo jeito 'sofisticado e elegante', ao invés de ir pelo simples. Explico-vos.
Hoje foi dia de implementar o envio de informações do cliente ao servidor. Primeiramente preparei um mecanismo rudimentar, por enquanto, para enviar para o browser um top Widget (AppFace) como apresentação. OK. Então, ali teria um botão para enviar um evento para testar a sincronização. Aí começa o suplício.
Inventei de usar um objeto XMLHttpRequest para fazer a requisição sem precisar de outro frame, e aí estava o problema: como eu escuto por eventos em outra porta, por precisar de um fluxo constante de dados vindo pelo stream original; o Mozilla não me permite conectar em outro 'servidor' (outra porta também) sem ter UniversalBrowserRead, o qual eu não tinha como obter. Tenta alteração aqui, tenta alteração ali, e nada. Realmente eu não tinha como usar o XMLHttpRequest. Porcaria. Desfaz alteração aqui, desfaz alteraçao ali. Volta pro começo.
No fim, tudo que precisei fazer foi, por javascript (function sendEvent()), dar um submit() num form escondido no controlFrame, e, ao tratá-lo, enviar um HTTP 204 (no content). Tão mais simples... e funcionou tão bem...
Ao fim, já temos um mecanismo que recebe direito eventos da apresentação e pode tratar eles, apesar de ainda não o fazer. Muito bom.
Uma revisão das coisas a serem feitas nos indica:
Python é legal.
Hoje foi dia de implementar o envio de informações do cliente ao servidor. Primeiramente preparei um mecanismo rudimentar, por enquanto, para enviar para o browser um top Widget (AppFace) como apresentação. OK. Então, ali teria um botão para enviar um evento para testar a sincronização. Aí começa o suplício.
Inventei de usar um objeto XMLHttpRequest para fazer a requisição sem precisar de outro frame, e aí estava o problema: como eu escuto por eventos em outra porta, por precisar de um fluxo constante de dados vindo pelo stream original; o Mozilla não me permite conectar em outro 'servidor' (outra porta também) sem ter UniversalBrowserRead, o qual eu não tinha como obter. Tenta alteração aqui, tenta alteração ali, e nada. Realmente eu não tinha como usar o XMLHttpRequest. Porcaria. Desfaz alteração aqui, desfaz alteraçao ali. Volta pro começo.
No fim, tudo que precisei fazer foi, por javascript (function sendEvent()), dar um submit() num form escondido no controlFrame, e, ao tratá-lo, enviar um HTTP 204 (no content). Tão mais simples... e funcionou tão bem...
Ao fim, já temos um mecanismo que recebe direito eventos da apresentação e pode tratar eles, apesar de ainda não o fazer. Muito bom.
Uma revisão das coisas a serem feitas nos indica:
- precisamos ainda poder delegar a um componente um evento recebido; isto será fácil;
- precisamos definir direito e dar um lock temporário na API dos componentes gráficos. Se não a coisa pode ficar caótica, apesar de ainda estar bem no começo;
- dar jeito de fazer embedded browser funcionar para carregar a aplicação ele próprio;
- o nome do framwork é o criativíssimo PyWAF: Python Web-like Application Framework. Pelo menos é um nome que dá um acrônimo sonoro. PyWAF.
- a sincronização de eventos está ok;
Python é legal.
