2010-01-20 13 views
5

Quiero mostrar los últimos Tweets de un usuario en una página web, manteniendo la capacidad de personalizar los Tweets con CSS personalizado y también mantener una buena velocidad de carga de la página.¿Es mejor mostrar los últimos tweets en una página web usando PHP API o Javascript?

He logrado mostrar los últimos Tweets de 2 maneras.

  1. Uso del PHP Twitter library (por Aaron Brazell). Al usar este método, mi código PHP tiene que esperar una respuesta de Twitter antes de que mi página pueda completarse y enviarse al cliente. Esto podría causar que el tiempo de carga de la página sea bastante impredecible y más que probable que disminuya la carga de la página lo suficiente como para molestar a los usuarios.

  2. Al utilizar el widget de Twitter de Blogger, los últimos tweets se cargan usando JavaScript después de que se haya cargado el resto de la página. De esta forma, los usuarios no tienen que esperar la respuesta de Twitter antes de poder ver la página.

me gustaría saber si hay de cualquier otra pros y los contras de utilizar estos métodos diferentes para mostrar los últimos tweets de un usuario, y también si hay quizás otra solución que puedo mirar en lo que permitirá un estilo CSS personalizado y proporciona un buen rendimiento de carga de página?

Además, ¿cómo estos 2 métodos influyen en la forma en que Twitter aplica la limitación de velocidad? Usando PHP, puedo guardar en caché los Tweets y, por lo tanto, hacer menos llamadas a Twitter, mientras que usar JavaScript esto no es posible por lo que yo sé.

Respuesta

10

Usted puede tener un estilo CSS personalizado en ambos sentidos, así que esto no debería ser un problema

  1. al utilizar la API de PHP, tratar de caché toda la información que necesita y lo puso en p.ej. base de datos (y consulta Twitter cada 5-10 minutos, o script ejecución de actualización a través de cron -. Desde la última vez comprobado que hay un límite en las consultas en Twitter puede realizar sobre una base de tiempo específico)

  2. mediante el uso de Javascript actualizar tweets que desactivar las arañas web para indexar estos tweets en su página (también las personas con discapacidad por lo general no tienen JS activado ...)

EDITAR

también hay que necesitará más código PHP para implementar el almacenamiento en caché, pero esta es una experiencia de codificación muy agradable (por otro lado, es fácil implementar un script de JavaScript para buscar actualizaciones de Twitter)

Twitter API Límite de velocidad

Según lo leído en twitter.API: límites de Twitter REST peticiones a 150 peticiones/hora (usando reglas basadas en IP o contar las solicitudes de uso de la API autenticado)

GET peticiones como ir a buscar feeds de Twitter, líneas de tiempo a través de la API resto no contar

la POST peticiones como la actualización de los estados no cuentan

estado de límite de velocidad de la cuenta disponible en http://twitter.com/account/rate_limit_status.format donde se puede comprobar el número de petición se puede hacer en límite de tiempo especificado

+1

+1. Me gusta la idea de cron (o almacenamiento en caché general). – Franz

+0

5 minutos pueden incluso ser innecesarios. Como parece que estamos hablando de un solo usuario, no creo que actualizar el caché que a menudo será necesario. – Franz

+0

estuvo de acuerdo, pero el tiempo para ejecutar una recache es fácil de cambiar cuando se implementa correctamente :) –

0

Mi opinión - hacer en el lado del cliente.

  1. ¿Por qué perder tiempo de CPU en esto? Deje que el cliente maneje esto.
  2. Google lo indexará, y cuando el usuario navegue allí verá algo diferente.
3
  1. Pro: absolutamente independiente de la configuración de los usuarios. Con: Lo que dijiste - si Twitter es lento, tu sitio es lento + un montón de solicitudes de tu servidor -> aumento de la carga del servidor, etc.

  2. Pro: Menos trabajo para tu servidor - la velocidad de la carga solo depende de la velocidad de tu servidor Con: No todos tienen habilitado JavaScript e incluso entonces puede que tenga una demora fea en la aparición de Twitter.

Iré por la opción n. ° 1, personalmente.

+0

Dependiendo de cómo lo implemente, ese "retraso feo" podría retrasar la carga de una sección completa de la página, o causar un gran reflujo de contenido después de que lleguen los nuevos datos. – Quentin

0

me gustaría ir de un enfoque más flexible y estable:

buscar nuevos tweets repetidamente el en segundo plano (por ejemplo, cada 5 minutos.) Y almacenarlos en la base de datos. Entonces tienes todos tus tweets en tu propio servidor. Esto también evita que su sitio se cargue por edades cuando Twitter no funciona. Por no mencionar que también está funcionando cuando JS está desactivado;)

Con esto es la demora, pero podría disminuir el tiempo de inactividad, pero de hecho creo que 5 minutos es más que suficiente.

Cuando su visitante tiene JS habilitado y desea que se sienta un poco más en vivo, puede actualizar su tweet utilizando algunos AJAX.

0

No puedo agregar nada a lo que ya se ha mencionado.

PHP sería la mejor manera de hacerlo, pero asegúrese de almacenar en caché los resultados a intervalos regulares. Simplemente puede analizar el feed RSS de su perfil de Twitter con cualquiera de los analizadores sintácticos de árbol XML/DOM integrados de PHP para generar en cualquier formato que necesite, y este estilo como lo desee.

La desventaja de usar un método de JavaScript para mostrar tweets es que, como ya se mencionó, no será rastreada por los motores de búsqueda y no funcionará para los visitantes con JavaScript desactivado (naturalmente).

0

Ambos, construyen la lista de tweets usando PHP y luego tienen un plugin de jQuery simple (o algo similar) corriendo en el lado del cliente para mantenerlo actualizado.

  • Obras para los clientes sin JavaScript
  • le permite implementar el almacenamiento en caché del lado del servidor
  • Google indexará (lo que podría ser bueno?)
1

intente utilizar sweetcron.puedes hacer que sea un trabajo cron. Buscará feeds de Twitter y los pondrá en la base de datos. así que la referencia de Twitter no afectará a su carga de página.

detalles más aquí: http://code.google.com/p/sweetcron/

0

En mi sitio, mi solución es cargar la página de forma normal, y luego incluir algunos teletipos para mostrar que no hay datos aún por llegar. Luego tengo un script PHP al que se accede con AJAX que carga los datos de Twitter y los emite de una manera agradable: no he implementado el almacenamiento en caché porque tengo un volumen extremadamente bajo de tráfico, pero podría hacerlo en el futuro. ¡También tengo una etiqueta <noscript> con un iFrame para esas personas inusuales que no tienen Javascript!

Elijo este método porque me permite dejar que el usuario vea la página muy rápidamente, pero aún pueden ver los tweets más tarde.

Cuestiones relacionadas