2012-04-23 20 views
5

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

7

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.

+0

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

+1

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. –

+0

Sí, ya veo, muchas gracias. – neutrino

0

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;))

0

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

0

¡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.

0

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á.

1

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?

Cuestiones relacionadas