Ejecuto el sitio web this para mi padre, que extrae los tweets de su feed de Twitter y los muestra en un formato alternativo. Actualmente, los tweets se extraen usando javascript, por lo que son completamente del lado del cliente. ¿Es la forma más eficiente de hacer las cosas? El sitio web no tiene una tasa de aciertos, pero estoy interesado en cuál sería la mejor forma de escalarlo. Cualquier consejo sería genial. También estoy pensando en incluir artículos en la transmisión en algún momento. ¿Cuál sería la mejor manera de implementar eso?¿Del lado del servidor o del lado del cliente para buscar tweets?
Respuesta
Las solicitudes de Twitter API son rate limited to 150 an hour. Si su página se solicita más que eso, obtendrá un error de la API de Twitter (un error de HTTP 400). Por lo tanto, probablemente sea una mejor idea solicitar los tweets en el servidor y almacenar en caché la respuesta durante un cierto período de tiempo. Puede solicitar los últimos tweets hasta 150 veces por hora, y cada vez que se solicite su página, recibe los tweets en caché de su secuencia de comandos del lado del servidor, en lugar de llamar directamente a la API.
A partir de los documentos de Twitter:
llamadas no autenticados se permiten 150 peticiones por hora. Las llamadas no autenticadas se miden frente a la IP pública del servidor o dispositivo que realiza la solicitud.
Hace poco trabajé para integrarme con la API de Twitter exactamente de la misma manera que usted. Terminamos alcanzando el límite de velocidad muy rápidamente, incluso mientras probamos la aplicación. Esa aplicación ahora almacena en caché los tweets en el servidor y actualiza el caché varias veces cada hora.
Al tirar de los tweets del lado del servidor, usted enruta todo el tráfico de tweets a través de su servidor. Por lo tanto, todo su tráfico proviene de su servidor, lo que podría causar una disminución en el rendimiento de su sitio web.
Si no haces nada mágico con esos tweets que no son posibles para el cliente, debería seguir con tu solución actual. No tiene nada de malo y tiene una escala tremenda (suponiendo que no supere a los servidores de Twitter, por supuesto;))
Extraer sus tweets del lado del cliente es definitivamente mejor en términos de escalabilidad. No entiendo lo que está buscando en su segunda pregunta sobre cómo agregar artículos
¡Creo que si puede hacerlos, vaya al lado del cliente! Impulsa el uso del ancho de banda al navegador. Menos carga en tu servidor. Creo que también es escalable. ¡Mientras su cliente pueda hacer una solicitud web, puede mostrar su sitio! no hay nada más fácil que eso! ¡Tu servidor nunca será un cuello de botella para ellos!
Si puede obtener artículos a través de una API, me quedaré con la configuración actual para mantener todo el lado del cliente.
Para cosas de muy baja demanda como esa, realmente no va a importar mucho. Si tiene una gran cantidad de tareas por usuario, entonces quizás desee considerar el lado del servidor. Si tiene una gran cantidad de usuarios y solo unas pocas tareas (tweets para ser arrastrados o lo que sea) por usuario, el lado del cliente AJAX es probablemente el camino a seguir. En cuanto a la inclusión de artículos, probablemente iré al lado del servidor debido al tamaño de los datos con los que trabajará.
Recomendaría usar el lado del cliente para llamar a la API de Twitter. Evita llamar a tu servidor. La única desventaja de usar js del lado del cliente es que no puede controlar si el espectador tendrá js desactivado o no.
¿Qué tipo de artículo desea incluir en la transmisión?Al igual que las publicaciones de blog directamente en su sitio web o artículos externos?
- 1. Ruby: del lado del cliente o del lado del servidor?
- 2. Web Charting, lado del servidor o del lado del cliente?
- 3. Método del lado del servidor y del lado del cliente
- 4. Paginación: ¿lado del servidor o lado del cliente?
- 5. Validación de entrada de usuario, del lado del cliente o del lado del servidor? [PHP/JS]
- 6. ¿Debo hacer solicitudes de API del lado del servidor o del lado del cliente?
- 7. Utilice menos (preprocesador css) del lado del servidor o del lado del cliente
- 8. lado del servidor MVC + lado del cliente MVC
- 9. Sesiones del lado del cliente
- 10. librería javascript para el almacenamiento del lado del cliente con la sincronización del lado del servidor
- 11. Idiomas del lado del cliente
- 12. ¿Cuándo usar el lado del cliente o del lado del servidor?
- 13. Análisis del lado del servidor
- 14. ¿Cómo usar las reglas de validación tanto del lado del cliente como del lado del servidor?
- 15. Plantillas del lado del servidor, plantillas del lado del cliente - ¿Conversión automática?
- 16. Crear validación combinada del lado del cliente y del lado del servidor en Symfony2
- 17. jqgrid clasificación del lado del cliente con paginación del lado del servidor - los datos desaparecen
- 18. ¿Qué tan rápido es javascript del lado del cliente contra Java del lado del servidor?
- 19. ¿Hay un cliente Websocket del lado del servidor para node.js?
- 20. Comprobación del lado del servidor frente al lado del agente
- 21. Lenguajes del lado del cliente fuertemente tipados?
- 22. Cookies solo del lado del cliente
- 23. ¿La mejor manera de proporcionar gráficos en la web? ¿Biblioteca del lado del servidor o del lado del cliente? HTML5?
- 24. Lado del cliente + plantillas del lado del servidor, me parece mal, ¿cómo optimizar?
- 25. DDD y validación del lado del cliente
- 26. caché de archivos del lado del cliente
- 27. ASP.NET validador propio lado del cliente y la validación del lado del servidor no disparar
- 28. Paginación del lado del cliente con jqGrid
- 29. HTML5 - lado del servidor
- 30. Caché del lado del cliente en GWT
Gracias - Haré eso, un gran consejo. Solo para complacer mi OCD por rendimiento, sería mejor almacenarlo en caché (por ejemplo, una vez por hora) como json y luego hacer que el cliente descargue y llene la página usando ese json (para el lado del cliente) o para almacenarlo como p. Ej. Sql , luego preprocesar la página usando, por ejemplo, php (lado del servidor)? Espero que tenga sentido. – neutrino
La forma en que lo hice es simplemente para que la secuencia de comandos del lado del servidor devuelva la cadena JSON en caché. De cualquier forma, funcionaría, así que depende de ti en realidad. En mi caso, era más rápido y más fácil mantener el JS existente, que solo habría funcionado si la respuesta del servidor estaba en el mismo formato. –
Sí, ya veo, muchas gracias. – neutrino