Quale sarebbe un modo migliore per caricare i dati tramite ajax

2

Sto usando google maps e restituisco html / lat / long dal mio database MySQL

Attualmente

  1. Un utente seleziona una categoria di attività, ad es. "Produzione video".
  2. una chiamata ajax viene inviata a un controller CodeIgniter
  3. il controller quindi interroga il db e restituisce i seguenti dati tramite JSON
    1. Lat / Long dell'indicatore
    2. HTML per la finestra popup
    3. si tratta di circa 34 righe nel database su due tabelle per azienda
  4. la chiamata ajax riceve questi dati e quindi traccia l'indicatore insieme all'html sulla mappa

I dati restituiti dal controller sono un grosso oggetto json ... Questo viene fatto per tutte le aziende esistenti nella categoria Produzione video (attualmente circa 40 aziende). Come puoi vedere, l'estrazione di questi dati per più categorie (100 di aziende) può essere molto onerosa sul server.

La mia domanda è

Sarebbe più vantaggioso modificare il flusso del processo in questo modo:

  1. un utente sceglie una categoria di attività, ad es. "Produzione video".
  2. una chiamata ajax viene inviata a un controller CodeIgniter
  3. il controller quindi interroga il database per le informazioni sulla base della posizione
    1. latitudine / longitudine
    2. livello (usato per cambiare il colore dell'icona dell'indicatore)
    3. Questa sarebbe una singola riga per azienda con diverse colonne
  4. la chiamata ajax riceve questi dati e quindi traccia il marker sulla mappa
  5. quando l'utente fa clic su un marker una chiamata ajax viene inviata a un controller CodeIgniter
  6. il controllore interroga il database per l'HTML e i dati aggiuntivi basati su business_id

e in caso negativo, quali sono alcuni suggerimenti migliori per questo problema?

In sintesi, questo significa piuttosto che includere l'HTML e i dati aggiuntivi insieme per ogni azienda, solo inviando informazioni minime sulla posizione e quindi richiedere nuovamente tali informazioni quando viene fatto clic su ogni marcatore aziendale.

Potenziali lati negativi

  1. tempi di caricamento più lunghi quando un utente fa clic sull'icona di un indicatore
  2. altro codice ??
  3. Altre query nel database
posta gorelative 12.06.2012 - 21:56
fonte

1 risposta

1

A meno che tu non noti che questo sta causando un qualche tipo di problema di prestazioni, vorrei lasciare così com'è .

Generalmente, i viaggi di andata e ritorno della rete sono la voce più lenta e dovrebbero essere ridotti al minimo il più possibile. Mi preoccuperei solo di una tale ottimizzazione una volta arrivato al punto in cui c'è un problema di prestazioni osservabile. Senza profiling, è impossibile dire quale metodo sarà veramente più veloce e potrebbe essere diverso per ogni utente. JSON è un formato abbastanza preciso e molte cose possono essere condensate.

Inoltre, se ritieni che il rendimento sia un problema, potresti voler esaminare i modelli di lato client (come KnockoutJS , modelli jQuery, Handlebars, Moustache, ...) per la finestra popup, assumendo che il contenuto sia basato su un modello. Questo potrebbe consentire di ridurre al minimo i dati inviati.

    
risposta data 12.06.2012 - 22:49
fonte

Leggi altre domande sui tag