- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Chiarimenti su carico server con ajax e jquery
-
Chiarimenti su carico server con ajax e jquery
Ho realizzato su pagine asp, una chat con jquery: tutto funziona a meraviglia. Il plugin jquery va in stand-by automaticamente dopo qualche minuto se non viene usata la chat.
Tuttavia mi sorgono dei dubbi: per verificare quali utenti sono online, ho creato una chiamata Ajax che aggiornandosi ripetutamente con setInterval, visualizza quali e quanti utenti sono effettivamente online, andando a prelevare i nominativi da un db access (la chat funziona invece con MySql).
Prevedendo qualche centinaio di accessi giornalieri al sito, con quale intervallo di tempo sarebbe consigliabile impostare setInterval? La pagina richiamata ogni volta nel box degli utenti è di 6 kb, quindi è questo il traffico che ogni volta si sommerebbe al traffico generale del sito?
Da qualche parte ho letto che le chiamate asincrone di ajax, non influiscono nel traffico, ma non vorrei aver capito male...
Il punto è che non vorrei sovraccaricare il server: qualche chiarimento?
Grazie
-
Ciao DM8,
le chiamate in ajax sono sempre delle richieste http, dunque creano traffico (logicamente minore di chiamare un'intera pagina html).Più che sul tempo del setInterval() dovresti lavorare sull'ottimizzazione della richiesta prevedendo una sorta di cache o altro.
-
Grazie per la risposta.
Attualmente ho suddiviso lo script: la prima parte aggiornata con setInterval, mi mostra solo il numero di utenti collegati, andando a prelevare i dati dal db. Con la seconda, richiamo sempre con ajax i nominativi effettivamente collegati (stile facebook per capirci), ma solo alla richiesta dell'utente, quindi senza refresh.
Mi hai consigliato di prevedere una sorta di cache, ma dovrebbe essere un controsenso, visto che devo offrire costantemente dei dati aggiornati.
A questo punto, penso che aggiornare la pagina che mostra il totale utenti collegati (solo 4 kb) ogni 10 secondi, sia un compromesso accettabile ed eventualmente posso sempre aumentare l'intervallo.
La cosa che mi piacerebbe capire bene, è se è la stessa cosa visualizzare con ajax la pagina con il conteggio, o far eseguire lo script della stessa pagina in background, mostrando solo il risultato.
A occhio, mi sembra la stessa cosa dal punto di vista del traffico: sbaglio?
-
Quello che intendevo è che si può agire in diversi modi.
Per esempio in una chat che ho realizzato tempo fa passavo via richiesta ajax il time dell'ultima chiamata poiché in questo modo anziché ricaricare tutti i messaggi aggiungevo esclusivamente quelli nuovi.
Il traffico dipende dal peso di ciò che ti restituisce la richiesta ajax.