App Nativa ---> Drupal (REST-API)
https://www.drupal.org/docs/drupal-apis
Premetto che è la prima app che sviluppo che và a leggere su un server Drupal e mi sono da subito un pò dovuto confrontare con l'ottimizzazione dell'app per quanto riguarda i tempi di dowload dei dati.
Su drupal ogni singolo set di dati contenuto nelle pagine del CMS viene chiamato "nodo" di dati che contiene tutti i campi (sia visibili sulla pagina web che di sistema).
L'app già subito in partenza, deve scaricarsi 40 nodi in sequenza uno ad uno (peso medio 2,6 kb):
'DOWNLOAD NODO
Dim j As HttpJob : j.Initialize("j", Me)
private WSUrl = https://dominio.com//node/18?_format=json
J.Download (WSUrl)
Facendo delle verifiche, ogni singolo download di un nodo ci mette in media 600 ms che moltiplicato per il totale dei nodi fà 24.000 ms in totale ovvero 24 secondi.
L'utente che apre l'app la prima volta deve aspettare 24 secondi prima di poter iniziare a usarla, tradotto in utentese: un'eternità.
In questo caso, teoricamente, si può agire in 2 modi:
1) Lato server
2) Lato client
LATO SERVER (non sotto il mio controllo)
- E' il mio primissimo progetto (client) su Drupal (che usa il mio cliente) e di drupal ho conoscenze molto limitate, ovvero: installazione di base del modulo applicativo delle API e la url (//node/18?_format=json) di come chiedere un nodo in JSON a Drupal).
- L'hosting (drupal) non è in mia gestione ma è in gestione ad un azienda esterna (fornitore dell'azienda che mi ha commissionato l'app).
LATO CLIENT (sotto il mio controllo)
Qui sapendo come diavolo
ottimizzare il download dei dati, potrei risparmiare un pò di prezioso tempo.
La prima cosa che mi viene in mente è quella di chiamare un solo download passando tutti i nodi come parametri, invece di eseguire 40 download per tutti i 40 nodi.
In teoria in questo modo dovrei risparmiare i tempi di rete (richiesta e riposta) moltiplicati per 40 volte. Sbaglio ?
Detto a parole sembra semplice ma... come diavolo dire alle API
Drupal di darmi 40 nodi invece che uno ?
Stavo controllando la documentazione ma fino ad ora non ho trovato la
di volta
Qualcuno di voi si è mai confrontato con questo tipo di problematiche?
https://www.drupal.org/docs/drupal-apis
Premetto che è la prima app che sviluppo che và a leggere su un server Drupal e mi sono da subito un pò dovuto confrontare con l'ottimizzazione dell'app per quanto riguarda i tempi di dowload dei dati.
Su drupal ogni singolo set di dati contenuto nelle pagine del CMS viene chiamato "nodo" di dati che contiene tutti i campi (sia visibili sulla pagina web che di sistema).
L'app già subito in partenza, deve scaricarsi 40 nodi in sequenza uno ad uno (peso medio 2,6 kb):
'DOWNLOAD NODO
Dim j As HttpJob : j.Initialize("j", Me)
private WSUrl = https://dominio.com//node/18?_format=json
J.Download (WSUrl)
Facendo delle verifiche, ogni singolo download di un nodo ci mette in media 600 ms che moltiplicato per il totale dei nodi fà 24.000 ms in totale ovvero 24 secondi.
L'utente che apre l'app la prima volta deve aspettare 24 secondi prima di poter iniziare a usarla, tradotto in utentese: un'eternità.
In questo caso, teoricamente, si può agire in 2 modi:
1) Lato server
2) Lato client
LATO SERVER (non sotto il mio controllo)
- E' il mio primissimo progetto (client) su Drupal (che usa il mio cliente) e di drupal ho conoscenze molto limitate, ovvero: installazione di base del modulo applicativo delle API e la url (//node/18?_format=json) di come chiedere un nodo in JSON a Drupal).
- L'hosting (drupal) non è in mia gestione ma è in gestione ad un azienda esterna (fornitore dell'azienda che mi ha commissionato l'app).
LATO CLIENT (sotto il mio controllo)
Qui sapendo come diavolo
La prima cosa che mi viene in mente è quella di chiamare un solo download passando tutti i nodi come parametri, invece di eseguire 40 download per tutti i 40 nodi.
In teoria in questo modo dovrei risparmiare i tempi di rete (richiesta e riposta) moltiplicati per 40 volte. Sbaglio ?
Detto a parole sembra semplice ma... come diavolo dire alle API
Stavo controllando la documentazione ma fino ad ora non ho trovato la
Qualcuno di voi si è mai confrontato con questo tipo di problematiche?