SlideShare una empresa de Scribd logo
1 de 13
Uno de los grandes errores
que comete la gente es
tratar de forzar sus intereses.
Tu no eliges tus pasiones, tus
pasiones te eligen a ti.
Jeff Bezos. Presidente y CEO de Amazon
Ejemplo MVC en FRONT (Backbone)
Cambio URL / History API

Router

DOM

VISTAS (renderizado + eventos)

( Manual )

FRONT

MODELOS y COLECCIONES

BACK
RESTFULL API
Phantom js
Phantom js nos permite
obtener “snapshots” de
nuestra web renderizada en
javascript. Es un navegador
sin interfaz, que podemos
ejecutarlo desde backend y
obtener el html para
devolver a los buscadores.
Todo precioso pero en mi caso..
Ya habia una plataforma creada
Toda la lógica estaba en backend, pero nada de
RESTFULL
Importante mantener el SEO
Routers y controladores
Organizo el frontend de la misma forma
Que el backend, en controladores.
Web.com/Users/profile/params

BACKEND
Controller users
→profile

Me aporta:
●
●

Al igual que en un framework en backend
mis controladores en frontend dependen
De la url y son automáticos

HTML

ROUTER

Estandarizar la organización
Automatizar la ejecucion del código js

FRONTEND JS
Controller users
→ profile
“/account/profile”

---->

“/account/media”

Puedo utilizar la HISTORY API para cambiar la url de forma
asíncrona.
Como mi ROUTER JS esta escuchando los cambios de la url
automaticamente se ejecutara el controlador de
“/account/media” en frontend

ROUTER

Si cambia la url o
accedes por primera ver
a la web..

BACKEND

Controller account
→ media
Si ha cambiado la url
asíncronamente...

Pido el parcial y lo
monto
Desde el backend
No tengo que cambiar mi estructura de url, tan solo
tengo que hacer una comprobación cuando recibo una
petición:
{
data:
{
Html: ”<b>Hola</b>”
},
Status:1

Account/profile

ES AJAX?
NO

HTML
Renderizado con layout HTML

SI

}
Como devuelvo el html
Dentro de un json puedo
Enviar mas datos, no solo
La renderización de la pantalla

JSON + VISTA PARCIAL HTML
Ajax y automatización de tareas:
Automatizo cosas como mostrar los errores de
los formularios, Sacar popups de alerta,
popups de validaciones gracias a una capa
intermedia
Controller_usuarios
→ pefil
Peticion
ajax

FRONT

DOM
JSON

$.post || $.get || $.ajax

Tareas
automáticas

JSON

BACK

AJAX LIBRARY

Controller_usuarios
→ perfil

PHP

{data: {
Html: ””,
Form_errors: {},
Popup_msj: {}
},
Status:1}
Reutilización y dependencia del dom
Asigno automaticamente los eventos la dom con la propiedad
doAction, pero Sin abusar = )

<div class=”button” doAction=”account_follow_user”>
Ejecuta

Controller_account → _action_follow_user()
En ocasiones es mejor asignarlos de la forma tradicional,
pero bien usado permite separar aun más la logica de los
eventos y hacerlos extremadamente faciles de reutilizar
Resumiendo
¿Que tengo que modificar en el
backend?
Si es ajax devuelve la vista parcial dentro de un json,
si no es ajax lo tienes hecho!
Puedes crearte una librería que te genere el json si
quieres automatizar tareas desde frontend.
Resumiendo
¿Como organizo el frontend?
Automatiza tus ruters con respecto a las urls usando una
librería como history.js y olvidate de hacerlo a mano
Comprueba si la url se ha cambiado asincronamente y
pide los parciales que te hagan falta
No tienes que preocuparte de renderizar vistas ni
controlar datos de modelos.
Crea una capa intermedia que escuche lo que devuelve tu
backend para automatizar tareas extendiendo $.get
$.post y $.ajax
A tener en cuenta
Las peticiones al servidor son mas pesadas porque
contienen todo el html renderizado, por tanto mas
lentas.

En parte se conpensa con que como desde front no
hay que renderizar ni tratar con modelos el cliente
necesitara procesar menos código javascript y la
ejecución sera más rápida
linkedin.com/in/ivangvillar
@ivangvillar
ivangvillar@gmail.com

Hazme un review en:

Pickevent.com/IvanGV

Más contenido relacionado

La actualidad más candente

Manual de instalación wampserver
Manual de instalación wampserverManual de instalación wampserver
Manual de instalación wampserveryoly1parra1
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJSCarlos Azaustre
 
PowerShell para administradores
PowerShell para administradoresPowerShell para administradores
PowerShell para administradoresPablo Campos
 
Eliminar registros de la base de datos desde página web dinámica.
Eliminar registros de la base de datos desde página web dinámica.Eliminar registros de la base de datos desde página web dinámica.
Eliminar registros de la base de datos desde página web dinámica.ISMAELHUERTASANCHEZ
 
Ejemplo aplicacion web (estructura)
Ejemplo aplicacion web (estructura)Ejemplo aplicacion web (estructura)
Ejemplo aplicacion web (estructura)BrayanDZ92
 
18 19 aplicaciones web modernas con javascript
18 19 aplicaciones web modernas con javascript18 19 aplicaciones web modernas con javascript
18 19 aplicaciones web modernas con javascriptSoftware Guru
 
10 Joomla. Alojamiento Web Gratuito
10 Joomla. Alojamiento Web Gratuito10 Joomla. Alojamiento Web Gratuito
10 Joomla. Alojamiento Web GratuitoJosé M. Padilla
 
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.ISMAELHUERTASANCHEZ
 
Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJSRené Olivo
 
Objetos Implícitos en JSP.
Objetos Implícitos en JSP.Objetos Implícitos en JSP.
Objetos Implícitos en JSP.Valeria Aksjd
 

La actualidad más candente (19)

Manual de instalación wampserver
Manual de instalación wampserverManual de instalación wampserver
Manual de instalación wampserver
 
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJS
 
Blog
BlogBlog
Blog
 
Blog
BlogBlog
Blog
 
AngularJS
AngularJSAngularJS
AngularJS
 
PowerShell para administradores
PowerShell para administradoresPowerShell para administradores
PowerShell para administradores
 
Eliminar registros de la base de datos desde página web dinámica.
Eliminar registros de la base de datos desde página web dinámica.Eliminar registros de la base de datos desde página web dinámica.
Eliminar registros de la base de datos desde página web dinámica.
 
Directivas
DirectivasDirectivas
Directivas
 
Ejemplo aplicacion web (estructura)
Ejemplo aplicacion web (estructura)Ejemplo aplicacion web (estructura)
Ejemplo aplicacion web (estructura)
 
18 19 aplicaciones web modernas con javascript
18 19 aplicaciones web modernas con javascript18 19 aplicaciones web modernas con javascript
18 19 aplicaciones web modernas con javascript
 
Aplicaciones Web Modernas con Javascript
Aplicaciones Web Modernas con Javascript Aplicaciones Web Modernas con Javascript
Aplicaciones Web Modernas con Javascript
 
Ajax
AjaxAjax
Ajax
 
Precios de hosting
Precios de hostingPrecios de hosting
Precios de hosting
 
10 Joomla. Alojamiento Web Gratuito
10 Joomla. Alojamiento Web Gratuito10 Joomla. Alojamiento Web Gratuito
10 Joomla. Alojamiento Web Gratuito
 
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.
FUNCIONES DEFINIDAS POR EL USUARIO Y VARIABLES SUPERGLOBALES.
 
myprofly
myproflymyprofly
myprofly
 
Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
 
Objetos Implícitos en JSP.
Objetos Implícitos en JSP.Objetos Implícitos en JSP.
Objetos Implícitos en JSP.
 

Destacado (10)

Json short manual
Json short manualJson short manual
Json short manual
 
SEO para aplicaciones javascript
SEO para aplicaciones javascriptSEO para aplicaciones javascript
SEO para aplicaciones javascript
 
Accesorios para Celulares WiMo
Accesorios para Celulares WiMoAccesorios para Celulares WiMo
Accesorios para Celulares WiMo
 
JSON
JSONJSON
JSON
 
Json
JsonJson
Json
 
Json
JsonJson
Json
 
Json
JsonJson
Json
 
Xml json yaml
Xml json yamlXml json yaml
Xml json yaml
 
JSON Support en SQL Server 2016
JSON Support en SQL Server 2016JSON Support en SQL Server 2016
JSON Support en SQL Server 2016
 
Conexion a servidor desde android
Conexion a servidor desde androidConexion a servidor desde android
Conexion a servidor desde android
 

Similar a Mudate a ajax sin morir en el intento.

Similar a Mudate a ajax sin morir en el intento. (20)

Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008
 
Ajax
AjaxAjax
Ajax
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
expo
expoexpo
expo
 
Sistema integrado
Sistema integradoSistema integrado
Sistema integrado
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
T10_Ejercicios_Solucion.pdf
T10_Ejercicios_Solucion.pdfT10_Ejercicios_Solucion.pdf
T10_Ejercicios_Solucion.pdf
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Curso ajax
Curso ajaxCurso ajax
Curso ajax
 
Web 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointWeb 2.0 ajax con SharePoint
Web 2.0 ajax con SharePoint
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controller
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
J query
J queryJ query
J query
 
Diseño web
Diseño webDiseño web
Diseño web
 
Diseño web
Diseño webDiseño web
Diseño web
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Javascript y Jquery.pptx
Javascript y Jquery.pptxJavascript y Jquery.pptx
Javascript y Jquery.pptx
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Mudate a ajax sin morir en el intento.

  • 1. Uno de los grandes errores que comete la gente es tratar de forzar sus intereses. Tu no eliges tus pasiones, tus pasiones te eligen a ti. Jeff Bezos. Presidente y CEO de Amazon
  • 2. Ejemplo MVC en FRONT (Backbone) Cambio URL / History API Router DOM VISTAS (renderizado + eventos) ( Manual ) FRONT MODELOS y COLECCIONES BACK RESTFULL API
  • 3. Phantom js Phantom js nos permite obtener “snapshots” de nuestra web renderizada en javascript. Es un navegador sin interfaz, que podemos ejecutarlo desde backend y obtener el html para devolver a los buscadores.
  • 4. Todo precioso pero en mi caso.. Ya habia una plataforma creada Toda la lógica estaba en backend, pero nada de RESTFULL Importante mantener el SEO
  • 5. Routers y controladores Organizo el frontend de la misma forma Que el backend, en controladores. Web.com/Users/profile/params BACKEND Controller users →profile Me aporta: ● ● Al igual que en un framework en backend mis controladores en frontend dependen De la url y son automáticos HTML ROUTER Estandarizar la organización Automatizar la ejecucion del código js FRONTEND JS Controller users → profile
  • 6. “/account/profile” ----> “/account/media” Puedo utilizar la HISTORY API para cambiar la url de forma asíncrona. Como mi ROUTER JS esta escuchando los cambios de la url automaticamente se ejecutara el controlador de “/account/media” en frontend ROUTER Si cambia la url o accedes por primera ver a la web.. BACKEND Controller account → media Si ha cambiado la url asíncronamente... Pido el parcial y lo monto
  • 7. Desde el backend No tengo que cambiar mi estructura de url, tan solo tengo que hacer una comprobación cuando recibo una petición: { data: { Html: ”<b>Hola</b>” }, Status:1 Account/profile ES AJAX? NO HTML Renderizado con layout HTML SI } Como devuelvo el html Dentro de un json puedo Enviar mas datos, no solo La renderización de la pantalla JSON + VISTA PARCIAL HTML
  • 8. Ajax y automatización de tareas: Automatizo cosas como mostrar los errores de los formularios, Sacar popups de alerta, popups de validaciones gracias a una capa intermedia Controller_usuarios → pefil Peticion ajax FRONT DOM JSON $.post || $.get || $.ajax Tareas automáticas JSON BACK AJAX LIBRARY Controller_usuarios → perfil PHP {data: { Html: ””, Form_errors: {}, Popup_msj: {} }, Status:1}
  • 9. Reutilización y dependencia del dom Asigno automaticamente los eventos la dom con la propiedad doAction, pero Sin abusar = ) <div class=”button” doAction=”account_follow_user”> Ejecuta Controller_account → _action_follow_user() En ocasiones es mejor asignarlos de la forma tradicional, pero bien usado permite separar aun más la logica de los eventos y hacerlos extremadamente faciles de reutilizar
  • 10. Resumiendo ¿Que tengo que modificar en el backend? Si es ajax devuelve la vista parcial dentro de un json, si no es ajax lo tienes hecho! Puedes crearte una librería que te genere el json si quieres automatizar tareas desde frontend.
  • 11. Resumiendo ¿Como organizo el frontend? Automatiza tus ruters con respecto a las urls usando una librería como history.js y olvidate de hacerlo a mano Comprueba si la url se ha cambiado asincronamente y pide los parciales que te hagan falta No tienes que preocuparte de renderizar vistas ni controlar datos de modelos. Crea una capa intermedia que escuche lo que devuelve tu backend para automatizar tareas extendiendo $.get $.post y $.ajax
  • 12. A tener en cuenta Las peticiones al servidor son mas pesadas porque contienen todo el html renderizado, por tanto mas lentas. En parte se conpensa con que como desde front no hay que renderizar ni tratar con modelos el cliente necesitara procesar menos código javascript y la ejecución sera más rápida