SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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

ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Último (20)

ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

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