php - subir - twitter search api
¿Es mejor mostrar los últimos tweets en una página web usando PHP API o Javascript? (8)
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 adicionales de tu servidor -> aumento de la carga del servidor, etc.
Pro: Menos trabajo para su servidor: la velocidad de carga solo depende de la velocidad de su servidor. Con: No todos tienen habilitado JavaScript e incluso entonces puede que tenga una demora fea en la aparición de Twitter.
Optaría por la opción n. ° 1, personalmente.
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.
Logré mostrar los últimos Tweets de 2 maneras.
Usando la biblioteca PHP Twitter (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.
Con 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 otros pro y contras para usar estos métodos diferentes para mostrar los últimos Tweets de un usuario, y también si hay quizás otra solución que pueda buscar que permita un estilo CSS personalizado y brinde un buen rendimiento de carga de página.
Además, ¿cómo influyen estos 2 métodos 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é.
Ambos, crean la lista de tweets usando PHP y luego tienen un plugin de jQuery simple (o algo similar) ejecutando el lado del cliente para mantenerlo actualizado.
- Funciona para clientes sin JavaScript
- Le permite implementar el almacenamiento en caché del lado del servidor
- Google lo indexará (¿qué podría ser bueno?)
Me gustaría un enfoque más flexible y estable:
Verifique nuevos tweets en segundo plano (por ejemplo, cada 5 minutos) y guárdelos en su 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. Sin mencionar que también está funcionando cuando JS está desactivado;)
Esta es la demora, pero podrías disminuir el tiempo de sueño, pero de hecho creo que 5 minutos es más que suficiente.
Cuando su visitante tiene habilitado JS y desea que se sienta un poco más en vivo, puede actualizar su tweet utilizando algunos AJAX.
Mi opinión - hacer en el lado del cliente.
- ¿Por qué perder tiempo de CPU en esto? Deje que el cliente maneje esto.
- Google lo indexará, y cuando el usuario navegue allí verá algo diferente.
Realmente 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 incorporados en 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 se mencionó anteriormente, no será rastreada por los motores de búsqueda y no funcionará para los visitantes con JavaScript desactivado (naturalmente).
intenta usar 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.
más detalles aquí: http://code.google.com/p/sweetcron/
Puede tener un estilo de CSS personalizado en ambos sentidos, por lo que esto no debería ser un problema
al utilizar PHP api, intente guardar en caché toda la información que necesita y ponerla en, por ejemplo. Base de datos (y consulta de twitter cada 5-10 minutos, o ejecute el script de actualización a través de cron; desde la última vez que revisé, hay un límite de consultas en Twitter que puede realizar en un tiempo específico)
al usar Javascript para actualizar los tweets, deshabilita las arañas web para indexar estos tweets en su página (también las personas discapacitadas generalmente no tienen JS habilitado ...)
EDITAR
También tenga en cuenta 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 cosas como actualizaciones de Twitter)
Límite de frecuencia de la API de Twitter
Como se lee en twitter.api: Twitter limita las solicitudes de REST a 150 solicitudes / hora (usando reglas basadas en IP o conteo de solicitudes para el uso autenticado de API)
Las solicitudes GET, como la obtención de feeds de Twitter, las líneas de tiempo a través del resto, sí cuentan
Las solicitudes POST como actualizar estados no cuentan
El estado del límite de la tasa de cuenta está disponible en http://twitter.com/account/rate_limit_status.format
donde puede verificar cuántas solicitudes puede hacer en un límite de tiempo específico
En mi sitio, mi solución es cargar la página como normal, y luego incluir algunos tickers para mostrar que todavía hay datos por venir. 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 así pueden ver los tweets más tarde.