Tengo curiosidad sobre cómo Facebook empuja los datos al navegador como en las noticias. Los nuevos datos se presenta en la parte superior del alimento sin necesidad de recargar la página o hacer clic en un botón de
¿Tiene Facebook lograr esto mediante el sondeo de su servidor a través de AJAX en un intervalo establecido o no de alguna manera impulso nuevos datos desde el servidor al cliente sin provocación?
En caso afirmativo, ¿qué idioma o API utilizan para hacer esto?¿Cómo aplica Facebook los datos a las noticias?
Respuesta
Se llama en realidad 'de votación larga', o 'comet'. Hay diferentes formas de realizar server push, pero la forma más común es mantener la conexión abierta mientras recibe los datos (tiene inconvenientes ya que el navegador tiene un límite de número de conexiones abiertas a un host). Facebook tenía código abierto Tornado web servers, que puede manejar una gran cantidad de conexiones abiertas (que puede ser un problema si tiene muchos usuarios, pero está usando apache, por ejemplo). En el momento en que recibe la respuesta AJAX, simplemente realiza una nueva solicitud, esperando la siguiente respuesta.
empujan con AJAX, y utilizan (al menos solían usar), el desplazamiento infinito.
Quizás cargar la página, y que harían una llamada inicial al servidor para cargar algunos mensajes en función de quién está registrado en, por ejemplo, con un marco como jQuery:
http://api.jquery.com/jQuery.ajax/
Y a medida que te desplazas hacia abajo, anotan cuándo estás cerca de la parte inferior de la página y necesitan cargar más para que no te queden sin datos, y luego hacen otra llamada automáticamente. Esto se conoce como desplazamiento infinito, y realiza un seguimiento de dónde se encuentra en el DOM:
Sólo un ejemplo: http://ajaxian.com/archives/implementing-infinite-scrolling-with-jquery
En esencia, el código hace una llamada AJAX a sus servidores, y, o bien espera una respuesta que desencadena otra solicitar, encuestas en un temporizador, o abren un websocket para recibir datos tan pronto como se presiona. Esto, por supuesto, es para que los datos "nuevos" aparezcan en la parte superior del feed. Cuando se llega a la página en la parte inferior, simplemente hacen otra llamada AJAX para obtener los siguientes n elementos.
- 1. ¿Cómo me gusta las noticias de Facebook?
- 2. ¿Cómo transmitir malas noticias a los clientes?
- 3. Facebook API - noticias con publicaciones en el muro
- 4. ¿Cómo obtener noticias usando la aplicación gráfica de Facebook?
- 5. unicidad aplica los métodos y las limitaciones
- 6. Diseño de la base de datos de noticias como en Facebook
- 7. ¿Cómo se aplica la programación funcional a las simulaciones?
- 8. ¿A dónde va para las noticias de C++?
- 9. ¿Cómo puedo recuperar el suministro completo de noticias de un usuario a través de la API de Facebook?
- 10. ¿Cómo uso Perl's WWW :: Facebook :: API para publicar en el suministro de noticias de un usuario?
- 11. ¿Las declaraciones condicionales en las vistas son malas noticias?
- 12. ¿Cómo se pueden divulgar las malas noticias a los empleados de otros departamentos que no pertenecen a la SI?
- 13. Spring Security 3.0: ¿Cómo especifico las URL a las que se aplica un filtro personalizado?
- 14. ¿Por qué Scala aplica los thunk automáticamente, a veces?
- 15. Javascript onmouseout aplica a div despedido por los niños
- 16. Visualización de un suministro de noticias/línea de tiempo de Facebook en un sitio web
- 17. ¿Cómo publicar desde la aplicación de Facebook a la página de Facebook?
- 18. Cómo agrupar/comparar noticias similares artículos
- 19. ¿La Ley de Demeter solo se aplica a los métodos?
- 20. Las mejores fuentes de noticias para desarrolladores web, RSS
- 21. (C#) ¿SuspendLayout se aplica en cascada a los controles secundarios?
- 22. Acceso externo a los eventos de Facebook
- 23. Cómo crear un ticker de noticias
- 24. Página de Facebook Facebook Connect Facebook
- 25. getopt() no aplica los argumentos necesarios?
- 26. ¿Qué técnica utiliza Facebook para generar sus noticias en su aplicación de iPhone?
- 27. ¿Por qué los bytes enteros se almacenan al revés? ¿Esto se aplica solo a los encabezados?
- 28. Android Facebook SDK - Cómo consultar las notificaciones de Facebook
- 29. Modernizr no aplica clases a etiqueta html
- 30. ¿Cómo se aplica un parche al rubí en los rieles?
Si tiene firebug eche un vistazo en la consola. Lo que verá será una solicitud GET, probablemente a través de una solicitud AJAX, que simplemente gira indefinidamente. La verdadera pregunta sería cómo mantienen abierta esta solicitud, ya que no parece estar establecida en un tiempo de espera o intervalo. – grep