Desenvolvimento Web GeneXus X 6º Encontro GUG Porto Alegre/Brasil Nataniel Strack – [email protected] Agenda • Eventos • 9.0: Todos eventos no servidor • X: Eventos no cliente, eventos no servidor • Post vs Get • 9.0 • Chamadas recursivas •X • Todos eventos em uma tela • Get • Preparação do ambiente (igual 9.0 porém mais pesado) • Um JS por página • Post: • Trafego vs carga • Controlar execuções através de &HTTPResponse.Method • Sempre carrega Grid Lembrando HTTP 1 Requisição 3 Resposta HTML 2 Leitura <html> <head> <title>Título</title> </head> <body> Exemplo de página <i>HTML</i>! </body> </html> Gerenciamento memória - Win DBMS Memória ... Processo – Aplicação Área de programas Área de dados ... Gerenciamento memória - Web HTML Memória ... Processo - WebServer Área de programas Área de dados ... Memória ... Processo - Navegador Área de programas Área de dados ... Gerenciamento memória - Web HTML Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat Área de programas Área de dados ... Memória ... Processo - Navegador Área de programas Área de dados ... Gerenciamento memória - Web DBMS Memória Memória ... ... Processo - WebServer Área de programas Área de dados Processo - Navegador Área de programas Área de dados Processo – IIS/Tomcat Área de programas Área de dados ... ... Gerenciamento memória - Web DBMS Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS Área de programas Processo – StateServer Área de dados ... Memória ... Processo - Navegador Área de programas Área de dados ... Integridade Transacional - Win DBMS Memória ... Processo – Aplicação Área de programas Tela 1 Tela 2 Área de dados ... Integridade Transacional - Web DBMS Memória Memória ... ... Processo – IIS/Tomcat Área de programas Processo - Navegador Área de programas Área de dados Tela1.DLL Tela2.DLL Área de dados ... ... Leitura/geração arquivos - Win C:\caminho\arquivo.file C:\caminho\arquivo.file Memória ... Processo – Aplicação Área de programas Área de dados ... Leitura/geração arquivos - Web Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat Área de programas Área de dados ... C:\caminho\ arquivo.file C:\caminho\ arquivo.file Execução de Eventos - Win Memória ... Processo – Aplicação Área de programas go to ... Área de dados ... Execução de Eventos - Web 1 Conec./Requis. 6 Resp./Desc. HTML 2 Chamada5 Retorno Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat Área de programas Área de dados ... SQL 4 Retorno 3 Chamada DBMS Execução de Eventos - Web • Get Binário 2 Requisição 1 Conec./Requis. 3 Resposta 4 Resp./Desc. HTML HTML • Post HTML Binário HTML 2 Requisição 1 Conec./Requis. 3 Resposta 4 Resp./Desc. HTML’ HTML’ Web HTML 1 Conec./Requis. 5 Resp./Desc. HTML 2 Chamada 4 Retorno Imagens <html> <head> <title>Título</title> <link rel="Stylesheet" href='estilo.css' /> </head> <body> <table> <tr> <td><img src="genexus.jpg"></td> <td>Exemplo de página <span class="destaque">HTML</span>! </td> </tr> </table> </body> </html> .destaque {font-style:italic;} CSS Web Web ACTUAL PERFORMANCE -------------Requests started at: 22:12:12:3281 Responses completed at: 22:12:12:4062 Total Sequence time: 00:00:00.0781250 RESPONSE CODES -------------HTTP/200: 3 RESPONSE BYTES (by Content-Type) -------------image/jpeg: 1.894 text/css: 37 ~headers: 740 text/html: 275 Web 2.0 – Ajax - Get HTML 1 Requisição 4 Resposta HTML 2 Chamada 3 Retorno Imagens CSS Javascrípt Binário <html> <head> <title>Título</title> </head> <body> Exemplo de página <i>HTML</i>! </body> </html> Web 2.0 Web 2.0 HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Thu, 14 May 2009 03:43:36 GMT X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html; charset=utf-8 Content-Length: 1917 <html> <head> <meta name="Generator" content="GeneXus C#"/> <meta name="Version" content="10_0_3-18367"/> <meta name="Description" content="Exemplo"/> <meta http-equiv="Page-Enter" content="BlendTrans(Duration=0.1)"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Exemplo</title> Web 2.0 – Ajax - Post Json 3 Requisição 6 Resposta Json 4 Chamada 5 Retorno 2 Requisição 7 Retorno Framework Javascritpt 1 Executa Ação Binário {"gxProps":{"TEXTBLOCK1":{"Name":"Textb lock1","Caption":"Exemplo de página\t<i\>HTML</i\>!"}},"gxHiddens":{"_Ev entName":"","_EventGridId":"","_EventRowId" :"","sCallerURL":"","GX_FocusControl":"","G X_AJAX_KEY":"88EFFF70E5123B83C2E66F C5A3099862","GX_CMP_OBJS":{}},"gxValue s":[],"gxMessages":{"MAIN":[]},"gxComponen ts":{},"gxOverlapCmp":{},"gxFloatingCmp":{} ,"gxBackCmp":{},"gxGrids":{}} 8 Monta Página Web 2.0 Web 2.0 HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Thu, 14 May 2009 03:55:36 GMT X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Pragma: no-cache Cache-Control: no-cache Cache-Control: max-age=0 Content-Type: text/html; charset=utf-8 Content-Length: 385 {"gxProps":{"TEXTBLOCK1":{"Name":"Textblock1","Caption":"Exemplo de página\t<i\>HTML</i\>!"}},"gxHiddens":{"_EventName":"","_EventGridId":"", "_EventRowId":"","sCallerURL":"","GX_FocusControl":"","GX_AJAX_KEY":" 88EFFF70E5123B83C2E66FC5A3099862","GX_CMP_OBJS":{}},"gxValues":[ ],"gxMessages":{"MAIN":[]},"gxComponents":{},"gxOverlapCmp":{},"gxFloati ngCmp":{},"gxBackCmp":{},"gxGrids":{}} Agenda • • • • • Lembrando HTTP Gerenciamento de memória Integridade Transacional Leitura e geração de arquivos Execução de Eventos • Win • Web • Web 2.0 Debate