Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Csar D. Rodas
crodas@member.fsf.org
http://cesar.la/talks/
Ganador del PHP Innovation award 2007 Centro Nacional de Computacion www.CesaRodas.com
Ganador del PHP Innovation award 2007 Centro Nacional de Computacion www.CesaRodas.com
Algunas soluciones...
Simple librera de Javascript.
Algunas soluciones...
Simple librera de Javascript. Mtodo de transporte.
XML JSON ...
Algunas soluciones...
Simple librera de Javascript. Mtodo de transporte.
XML JSON ...
Algunas soluciones...
Simple librera de Javascript. Mtodo de transporte.
XML JSON ...
XAjax
<?php /* RPC */ function myFunction($arg) { /* Creando una respuesta */ $objResponse = new xajaxResponse(); $objResponse->assign("SomeElementId","innerHTML", $newContent); } $xajax = new xajax(); /* Registrando funcion */ $xajax->registerFunction("myFunction"); /* Procesando */ $xajax->processRequest(); ?> <!--Codigo Javascript--> <?php $xajax->printJavascript(); ?> <!-- el codigo --> <div id="SomeElementId"></div> <button onclick="xajax myFunction('It worked!');"></pre>
Cesar D. Rodas, http://cesar.la/ - L EX AT 7
XAjax - Desventajas
Utiliza solo XML para el transporte.
XAjax - Desventajas
Utiliza solo XML para el transporte. Genera mucho cdigo.
XAjax - Desventajas
Utiliza solo XML para el transporte. Genera mucho cdigo. API dbil.
No hay forma de crear elementos en la repuesta. Cosas complicadas requieren de escritura de javascript.
SAjax
<?php function multiply($x, $y) { return $x * $y; } sajax init(); sajax export("multiply"); sajax handle client request(); ?> <script> <?php sajax show javascript(); ?> function do multiply cb(z) { document.getElementById("z").value = z; } function do multiply() { x = document.getElementById("x").value; y = document.getElementById("y").value; x multiply(x, y, do multiply cb); } </script>
Cesar D. Rodas, http://cesar.la/ - L EX AT 9
SAjax - Desventajas
Genera mucho javascript.
SAjax - Desventajas
Genera mucho javascript. Poca documentacion.
SAjax - Desventajas
Genera mucho javascript. Poca documentacion. API dbil.
SAjax - Desventajas
Genera mucho javascript. Poca documentacion. API dbil. Se necesita escribir cdigo Javascript.
SAjax - Desventajas
Genera mucho javascript. Poca documentacion. API dbil. Se necesita escribir cdigo Javascript. Solo realiza el "RPC".
10
11
La solucin
La parte importante. Abstraccin de Javascript. Abstraccin de los Objetos HTML (DOM API). Mtodo optimizado de transporte.
12
PHPAJAX
13
PHPAJAX
PHPClasses, Open source (BSD License).
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3.
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3. Extensible.
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3. Extensible. Mtodo de transporte.
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3. Extensible. Mtodo de transporte. Genera cdigo javascript desde el PHP.
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3. Extensible. Mtodo de transporte. Genera cdigo javascript desde el PHP. Subir (upload) archivos al servidor usando "ajax".
PHPAJAX
PHPClasses, Open source (BSD License). Es la versin (re-escritura) 3. Extensible. Mtodo de transporte. Genera cdigo javascript desde el PHP. Subir (upload) archivos al servidor usando "ajax".
14
15
PHPAJAX - Desventajas
API muy dbil.
PHPAJAX - Desventajas
API muy dbil. JSON.
PHPAJAX - Desventajas
API muy dbil. JSON. Prototype.
PHPAJAX - Desventajas
API muy dbil. JSON. Prototype. Definir una clase por accin.
PHPAJAX - Desventajas
API muy dbil. JSON. Prototype. Definir una clase por accin.
16
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
Posible mtodo alternativo de AJAX sin XMLHttpRequest(). Genera cdigo Javascript a partir de PHP.
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
Posible mtodo alternativo de AJAX sin XMLHttpRequest(). Genera cdigo Javascript a partir de PHP. Funciones comunes para evitar escritura de Javascript.
Filtros. Operaciones Matematicas.
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
Posible mtodo alternativo de AJAX sin XMLHttpRequest(). Genera cdigo Javascript a partir de PHP. Funciones comunes para evitar escritura de Javascript.
Filtros. Operaciones Matematicas.
PHPAJAX 3
Mtodo de transporte.
XML, JSON, ... ? Cdigo Javascript.
Posible mtodo alternativo de AJAX sin XMLHttpRequest(). Genera cdigo Javascript a partir de PHP. Funciones comunes para evitar escritura de Javascript.
Filtros. Operaciones Matematicas.
17
PHPAJAX 3 - PHP2JS
<?php class MyButton extends HtmlButtons { # function onClick() { # $text = js::GetObject("algun input"); $numero = js::GetObject("algun numero"I );
PHPAJAX 3 - PHP2JS
<?php class MyButton extends HtmlButtons { # function onClick() { # $text = js::GetObject("algun input"); $numero = js::GetObject("algun numero"I ); js::alert("El valor del input es ", $text->value);
PHPAJAX 3 - PHP2JS
<?php class MyButton extends HtmlButtons { # function onClick() { # $text = js::GetObject("algun input"); $numero = js::GetObject("algun numero"I ); js::alert("El valor del input es ", $text->value); /* filtro */ jfilt::number($numero->value,"Tiene que ser un numero");a
PHPAJAX 3 - PHP2JS
<?php class MyButton extends HtmlButtons { # function onClick() { # $text = js::GetObject("algun input"); $numero = js::GetObject("algun numero"I ); js::alert("El valor del input es ", $text->value); /* filtro */ jfilt::number($numero->value,"Tiene que ser un numero");a /* matematica, suma */ $numero->value = jnum::add(5,$numero->value); } } ?>
18
19
Mi blog.
http://cesar.la/
20
Resources
PHPAjax
http://www.phpajax.org/
XAjax
http://www.xajaxproject.org
21
Powered by...
22