Io gestisco il sito web this per mio padre che estrae i tweet dal suo feed twitter e li visualizza in un formato alternativo. Attualmente, i tweet sono tirati usando javascript in modo del tutto client-side. È il modo più efficiente di fare le cose? Il sito web non ha quasi raggiunto il tasso di successo, ma sono solo interessato a quale sarebbe il modo migliore per ridimensionarlo. Qualsiasi consiglio sarebbe grande. Sto anche pensando di includere articoli nello stream ad un certo punto. Quale sarebbe il modo migliore per implementarlo?Lato server o lato client per il recupero dei tweet?
risposta
Le richieste API di Twitter sono rate limited to 150 an hour. Se la tua pagina viene richiesta più di quella, riceverai un errore dall'API di Twitter (un errore HTTP 400). Pertanto, è probabilmente una migliore idea richiedere i tweet sul server e memorizzare la risposta per un certo periodo di tempo. Puoi richiedere gli ultimi tweet fino a 150 volte all'ora, e ogni volta che la tua pagina viene richiesta riceve i tweet memorizzati nella cache dallo script lato server, piuttosto che chiamare direttamente l'API.
Dalla documentazione Twitter:
chiamate non autenticati sono ammesse 150 richieste all'ora. Le chiamate non autenticate vengono misurate rispetto all'IP pubblico del server o dispositivo che effettua la richiesta.
Recentemente ho fatto del lavoro di integrazione con l'API di Twitter esattamente nello stesso modo in cui si ha. Abbiamo finito per colpire il limite di velocità molto rapidamente, anche solo durante il test dell'app. Quella app ora memorizza i tweet sul server e aggiorna la cache alcune volte ogni ora.
Tirando i tweets dal lato server, stai instradando tutto il traffico tweet attraverso il tuo server. Quindi, tutto il tuo traffico verrà quindi dal tuo server, causando potenzialmente una diminuzione delle prestazioni del tuo sito web.
Se non si fanno cose magiche con quei tweet che non sono possibili clienti, dovrei attenermi alla soluzione corrente. Nulla di sbagliato e si adatta in modo tremendo (supponendo che tu non superi i server di Twitter, ovviamente))
Estrarre i tuoi tweet dal lato client è decisamente migliore in termini di scalabilità. Non capisco cosa stai cercando nella tua seconda domanda sull'aggiunta di articoli
Penso che se riesci a farli dal lato client, fallo! Spinge l'utilizzo della banda al browser. Meno carico sul tuo server. Penso che sia anche scalabile. Finché il tuo cliente può fare una richiesta web può mostrare il tuo sito! non è più facile di così! Il tuo server non sarà mai un collo di bottiglia per loro!
Se è possibile ottenere articoli tramite una API, attenersi alla configurazione corrente, mantenere il lato client di tutti gli aspetti.
Per cose veramente basse come quelle, in realtà non importa molto. Se si dispone di un numero elevato di attività per utente, è possibile prendere in considerazione il lato server. Se hai un numero elevato di utenti e solo poche attività (tweet da inserire o qualsiasi altra cosa) per utente, il lato client AJAX è probabilmente la strada da percorrere. Per quanto riguarda l'inclusione di articoli, probabilmente dovrei passare dal lato server a causa della dimensione dei dati con cui lavorerai.
Si consiglia di utilizzare il lato client per chiamare l'API di Twitter. Evita di chiamare il tuo server. L'unico inconveniente dell'utilizzo del js lato client è che non è possibile controllare se il visualizzatore avrà disattivato js.
Che tipo di articolo si desidera includere nello stream?Come post di blog direttamente sul tuo sito web o articoli esterni?
Grazie - Lo farò, ottimo consiglio. Solo per assecondare il mio OCD per le prestazioni, sarebbe meglio se memorizzarlo nella cache (ad esempio una volta all'ora) come un json e poi fare in modo che il client scarichi e riempia la pagina usando quel json (così sul lato client) o per metterlo in cache come ad es. Sql , quindi preprocessare la pagina usando ad esempio php (lato server)? Spero che abbia un senso. – neutrino
Il modo in cui l'ho fatto è semplicemente avere lo script sul lato server restituire la stringa JSON memorizzata nella cache. In entrambi i casi funzionerebbe, quindi dipende da voi davvero. Nel mio caso, è stato più semplice e veloce mantenere il JS esistente, che avrebbe funzionato solo se la risposta dal server era nello stesso formato. –
Sì, vedo, grazie mille. – neutrino