Come aggiornare / mantenere aggiornato il contenuto nel browser senza sovraccaricare il server

1

Non sono molto istruito su questo argomento della programmazione, quindi sono alla ricerca di qualsiasi consiglio / conoscenza. Sto codificando una web app in PHP, e questa particolare attività richiede l'aggiornamento del display dopo che il server ha nuove informazioni disponibili. Quindi, una soluzione apparentemente pessima è avere una richiesta AJAX ripetitiva che sparge il server in un intervallo e aggiorna quando riceve nuovi dati. Questo mette un sacco di stress sul server, quindi mi sembra non adatto.

Abbiamo tentato di utilizzare Ratchet ( link ) ma non siamo riusciti a capirlo. E 'questo che rende superfluo questo, o c'è un altro modo in cui possiamo risolvere questo problema mantenendo il carico del server il più "minimamente possibile" possibile. Ci sono siti web come Facebook / la maggior parte dei social media che mostrano dinamicamente i nuovi dati non appena sono disponibili - presumo che usino anche qualcosa che minimizzi le richieste al server? O questa assunzione è errata?

    
posta HC_ 26.01.2014 - 23:44
fonte

1 risposta

2

Grande domanda: quanto velocemente deve essere aggiornato il display sul client quando ci sono nuovi dati sul server? Entro 1 secondo? 10 secondi? 1 minuto?

Un'altra grande domanda: quanti client pensi che potrebbero utilizzare il tuo sistema contemporaneamente?

Se il client deve essere aggiornato entro una frazione di secondo, allora sì, il polling del server (usando ripetute richieste AJAX) è probabilmente una cattiva idea. Se 10 secondi, 30 secondi o anche un paio di minuti il tempo di risposta è OK, allora il polling probabilmente andrà bene.

Supponendo che i tuoi dati siano in un DB relazionale, assicurati che ci siano degli indici che possono essere utilizzati per recuperare rapidamente i "nuovi" dati. Se non si utilizza un DB relazionale, comprendere le implicazioni sulle prestazioni di come il particolare DB accede ai dati e fare tutto ciò che è necessario in modo che i "nuovi" dati possano essere consultati rapidamente, senza molto calcolo O I / O.

(Per riferimento: di recente ho creato un sistema con client che eseguono il polling del server ogni 3 minuti: ho un timestamp updated_at su tutti i record a cui è interessato il client e un indice sul timestamp. il server invia i dati al client, inoltre invia un timestamp che indica "questi dati sono validi come tali e così". La prossima volta che il client esegue il polling di altri dati, invia il timestamp ricevuto così il server può recupera i record che sono stati aggiornati nel frattempo.)

    
risposta data 27.01.2014 - 16:04
fonte

Leggi altre domande sui tag