Buongiorno, apro questo thread per segnalare il fatto che la pagina dedicata all’iniziativa Solidarietà digitale impiega più di un minuto a caricare la lista delle singole iniziative offerte dalle aziende utilizzando Mozilla Firefox come browser (con google chrome il problema non si presenta, almeno nella versione desktop).
Non so esattamente a cosa ciò è dovuto, molto probabilmente è dovuto alla presenza di numerosi script che gestiscono la lista dei servizi.
Dando un’occhiata al codice javascript presente nella pagina, ho trovato alcuni cicli for come questo:
for (var p = $("#spid-idp-list-small-root-get"), d = p.children(".spid-idp-button-link"), i = p.children(".spid-idp-support-link"); d.length;) p.append(d.splice(Math.floor(Math.random() * d.length), 1)[0]);
Il funzionamento del ciclo è abbastanza semplice: vengono inizializzate le variabili p,d,i con dei valori, il ciclo prosegue finché la lunghezza di d è diversa da 0, e ad ogni iterazione viene fatto un append su p di in elemento presente in d (quindi la lunghezza di d si riduce).
Il problema qui sta nelle operazioni eseguite per fare l’append: è davvero necessario ogni volta prendere un elemento in posizione casuale? Basterebbe eseguire un append con p.append(d) senza utilizzare tanti cicli for.
In ogni caso non penso che questo sia un grosso problema, però resta il fatto che su alcuni browser occorre troppo tempo per caricare la lista delle iniziative (ho provato anche con internet explorer 11 e edge build 18363, con tempi di attesa simili a quanto accade con firefox)