Foros del Web » Programando para Internet » Javascript »

Web monopagina

Estas en el tema de Web monopagina en el foro de Javascript en Foros del Web. Muy buenas, vengo hacer una consulta que no encuentro por ningún sitio. Se me a ocurrido hacer una web un poco diferente a la habitual. ...
  #1 (permalink)  
Antiguo 05/09/2013, 14:19
 
Fecha de Ingreso: abril-2009
Mensajes: 356
Antigüedad: 15 años
Puntos: 7
Web monopagina

Muy buenas, vengo hacer una consulta que no encuentro por ningún sitio.

Se me a ocurrido hacer una web un poco diferente a la habitual. Para empezar el servidor es nodejs, el cual se encarga solo de servir una pagina HTML y el codigo javascript al cliente. Para interactuar con el servidor utilizo solo socket una vez la pagina ha cargado.

La idea es descargar toda la pagina en un único archivo HTML y con jquery mostrar u ocultar las parte correspondiente, mas o menos como lo hace jquery mobile.

Por ahora todo funciona bien y la verdad es muy rápida ya que no tiene que recargar la pagina cada vez, sino que las secciones están hay y la informacion ya descargada no se borra.

Mi pregunta es si esto es recomendable o seria escesiva carga para un navegador, teniendo en cuenta que la aplicación esta dirigida a móviles, pero es una forma muy buena de quitarle peso al servidor y cargárselo al cliente.
__________________
Cannabis; todo sobre el mundo de la marihuana
  #2 (permalink)  
Antiguo 05/09/2013, 14:25
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Web monopagina

La carga de tu navegador va a depender en parte de cómo hayas hecho tu código Javascript.
Usar Nodejs da potencia a tu site, pero si estás constantemente enviando json y no lo mapeas como toca podés perder rendimiento, sobre todo si te conectas desde móviles.

Tenés la ventaja de cargar poco html y, por ende, que la página se cargue rápido.

De todos modos existen tecnologías para hacer esto, Backbone, Backbone Boilerplate, Meteor, Backbone Marionette son buenas alternativas y mejores que usar jQuery solamente.

De echo si usar jQuery solo entonces cómo harías para ocultar y mostrar el contenido? Harías una carga vía AJAX para obtener la información? Con lo que te mencioné arriba seguro lo hagas mucho mejor, y siguiendo patrones de orientación a objetos, en resumen, buenas prácticas.

Saludos.
  #3 (permalink)  
Antiguo 05/09/2013, 16:47
 
Fecha de Ingreso: abril-2009
Mensajes: 356
Antigüedad: 15 años
Puntos: 7
Respuesta: Web monopagina

Gracias por la referencia le daré un vistazo :)

Bueno la idea es simple imagínate que tengo 4 secciones: chat, perfil, amigos y mensajes privados.

Yo descargo el HTML desde el servidor sin datos. Cuando el HTML esta cargado lo oculto todo con jquey ( .hide ()) y cuando el usuario aga click en un boton muestro la sección (.show()) .

Lo bueno que tengo es que la informacion del perfil va a ser una constante, por lo que con pedirla una vez me vale. Las demás secciones las pido cuando el usuario accede a la pagina y una vez que todos los datos están cargados solo tengo que añadir los nuevos conforme llegan y si cambio de seccion esos datos seguirán hay porque no se borran.

El problema es que voy a tener toda la pagina en el cliente con todos sus datos, mensajes, lista de amigos... Y eso requerirá un consumo de memoria grande. Esa es mi preocupación. Por otro lado el servidor solo se encarga de mandar pequeños trozos de información y no usaría casi recursos
__________________
Cannabis; todo sobre el mundo de la marihuana
  #4 (permalink)  
Antiguo 06/09/2013, 01:31
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Web monopagina

En ese caso debes tener atención en que las llamadas al servidor sean rápidas y que te devuelvan el contenido de manera rápida.
Igualmente tené en cuenta que una llamada al servidor que te devuelva HTML siempre va a ser más pesada que si te devuelve json (que sería lo ideal) y que el html lo cargues de una plantilla con una llamada GET. Las tecnologías te mencioné antes te lo ponen más fácil, pero siempre requiere una curva de aprendizaje.

Lo que planteas está bien, solo que no haría llamadas al servidor que devuelvan puro HTML, ya que depende lo que devuelvas puede ser una llamada pesada o no.

Saludos.
  #5 (permalink)  
Antiguo 06/09/2013, 06:33
 
Fecha de Ingreso: abril-2009
Mensajes: 356
Antigüedad: 15 años
Puntos: 7
Respuesta: Web monopagina

estoy mirando muy a fondo Backbone y la verdad me esta encantando :), es lo que necesito pero me resulta un poco "diferente" el MVC.

Los sockets solo envian objetos json nada de html, dado que todo el html se sirve la primera vez que un usuario accede.

lo que no acavo de entender es los modelos, imaginate que yo tengo 100 usuarios en mi base de datos y son amigos entre si.

Entonces pepe por ejemplo se conecta a la aplicacion y descarga los datos de maria, juan y pedro por ejemplo.

Entonces cada uno de estos usuarios seria un modelo y todos irian dentro de una coleccion?
__________________
Cannabis; todo sobre el mundo de la marihuana
  #6 (permalink)  
Antiguo 06/09/2013, 07:18
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Web monopagina

Si, básicamente sería eso.
Si vas a usar una API para obtener los datos directamente podés crear una colección y que los modelos que contenga vengan del API mismo. Debes ver el parámetro URL y PARSE de las colecciones.

Es muy fácil pero si ya tenés un proyecto en marcha quizás sea mejor que lo termines y luego refactorices usando Backbone. No se, eso depende mucho de cómo vayas de tiempos y demás cosas.

Saludos.
  #7 (permalink)  
Antiguo 06/09/2013, 13:37
 
Fecha de Ingreso: abril-2009
Mensajes: 356
Antigüedad: 15 años
Puntos: 7
Respuesta: Web monopagina

Tengo también una dudilla con las urls.

La idea principal era mandar y recibir todo por socket ya que la aplicación necesita un Login para haceder a los datos.

Esto tiene el problema de que los botones del navegador de ir hacia delante o hacia atrás quedan invalidados.

Entonces que seria mejor hacer que el servidor pueda recibir peticiones get, set, delete... Para poder manejar rutas y que con la api de HTML 5 pueda guardar esas rutas en el historial ya que los usuarios puedan retroceder o mandar todo por socket?

Porque al recibir una petición get ya estaría recargando la pagina no? Con el correspondiente uso del servidor, sin encargo por socket solo mandaría jsons y la pagina solo se descargara una vez

Gracias por la ayuda, me esta sirviendo de mucho :)
__________________
Cannabis; todo sobre el mundo de la marihuana

Etiquetas: funcion, html, jquery, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.