PDA

Visualizza la versione completa : Alta latenza con passaggio dati ajax


portapipe
28-10-2011, 08:46
Buongiorno ragazzi.
Ho creato un gestionale in php/mysql/jquery per la catalogazione di cd con motore di ricerca integrato.
Mi sono trovato ad avere un piccolo problema di latenza su una ricerca: quella della totalità dei cd.
La ricerca, una volta inoltrata, ritorna in modo asincrono le informazioni necessarie del cd, copertina compresa che, pensando fosse colpa delle immagini stesse, ho ridotto tutte a thumbnail per max 5kb l'una.
Considerando che attualmente ci sono 14 cd e il tempo di latenza, come da immagine allegata, varia dai 7 ai 9 secondi, quale può essere il problema?
Passo troppo codice tramite ajax?
C'è un conflitto/problema con il codice javascript?
Davvero non capisco...
Magari è un tempo normale e anche con 3000 cd (quota prevista) il tempo rimane quello ma dubito...

Grazie a chiunque darà anche solo uno spunto per capire dove guardare :)


p.s. intanto proverò a fare qualche test togliendo parti di codice.. magari capisco cosa rallenta il tutto.

Vindav
28-10-2011, 10:39
per prima cosa ti consiglio di verificare quanto sia la durata di elaborazione della parte server side. Ti basta aggiungere due log all'inizio e alla fine del metodo richiamato.

portapipe
28-10-2011, 10:52
Lo farò!

Nel frattempo, come avevo specificato, ho tolto un pò di codice e mi sono accorto che uno script che uso per la valutazione, semplici stelline, ci mettevano una vita e tre quarti a caricare, così ho spostato quel codice in una funzione a parte, richiamabile sempre tramite ajax, una alla volta.

Il problema riguardava una lista di 10/15 canzoni per cd, che facevano molte stelline da caricare (sempre con questo script) che rallentava incredibilmente il tutto.

Ora ci mette 600ms a caricare il tutto e le canzoni si possono vedere a parte un cd alla volta.

Per rimanere in tema, come si può ottimizzare al massimo una chiamata asincrona con ajax? Quali dati è meglio non passare?

Grazie

Vindav
28-10-2011, 11:16
gli unici dati da passare sono quelli necessari per far si che l'elaborazione lato server sia compiuta con successo. Se è necessario recuperare piu informazioni da una singola chiamata ajax io raggruppo tutto in un singolo json, preferisco fare un solo accesso lato server e poi smazzarmi tutti i dati lato client che effettuare nmila chiamate ajax. La questione cmq credo sia molto soggettiva, spesso dipende da come è strutturata l'applicazione.

Loading