Ottimizzazioni mobile

by Luca Baldini on 2 maggio 2012

Nelle scorse settimane ci siamo fatti questa domanda: “sappiamo come ottimizzare le applicazioni web tradizionali, ma gli stessi ragionamenti valgono anche nel caso di applicazioni web HTML5 offline? O c’è qualcosa in più da sapere?”.

Per rispondere abbiamo eseguito alcuni test confrontando le performance di una applicazione web tradizionale eseguita su PC e la stessa applicazione in modalità offline su dispositivo mobile. Ci aspettavamo prestazioni differenti dovute in parte all’hardware del dispositivo ed in parte all’implementazione SQLite del browser.

Studiando i risultati del test abbiamo scoperto tre accorgimenti da tenere presente quando sviluppate le vostre applicazioni offline:

  1. Se dovete eseguire molte query (anche in sola lettura) utilizzate le transazioni. Il motore SQLite dei browser, infatti, richiede una transazione per eseguire una query. Se dovete eseguire 1000 query dentro ad un ciclo aprite voi la transazione prima di avviare il ciclo. In questo modo il sistema non dovrà aprire 1000 transazioni singole per ogni query.
  2. Non fidatevi del MaxRows nelle query. I driver .NET o Java dei database permettono di specificare il numero massimo di righe che una query può restituire mentre il driver SQLite del browser non prevede questa possibilità. Pertanto se eseguite una query che restituisce un milione di righe ed impostate MaxRows a 10 il sistema esegue la query leggendo un milione di righe e poi fornisce solo le prime 10 all’applicazione. Se dovete eseguire query su tabelle che contengono molti dati, cercate di limitare i risultati tramite opportune clausole Where.
  3. Utilizzate per quanto possibile gli indici nelle tabelle anche se su PC non lo fareste. È molto probabile che il motore SQLite del browser non utilizzi politiche di caching, pertanto se eseguite query su tabelle con molti dati gli indici possono diventare importanti per velocizzarle.

Un’ultima annotazione. Il suggerimento di Giuseppe riguardo allo sviluppare su un ambiente uguale a quello di produzione vale anche in questo caso. Dopo aver sviluppato l’applicazione ed averla provata sul simulatore (Safari o Chrome sul vostro PC), provatela anche sul dispositivo vero. Così potrete valutare meglio l’usabilità dell’applicazione e vedere se è necessario qualche aggiustamento al codice per renderla ancora più veloce.

{ 1 comment… read it below or add one }

1 Riccardo Bianco 2 maggio 2012 alle 17:43

Interessante
grazie

Leave a Comment

Previous post:

Next post: