Grazie @merefield, è esattamente quello che avevamo provato ![]()
Purtroppo, si ferma ancora per caricare prima la pagina dell’elenco utenti, poi reindirizza alla mappa.
Speravo che la mappa fosse disponibile direttamente su /map o qualcosa del genere ![]()
Grazie @merefield, è esattamente quello che avevamo provato ![]()
Purtroppo, si ferma ancora per caricare prima la pagina dell’elenco utenti, poi reindirizza alla mappa.
Speravo che la mappa fosse disponibile direttamente su /map o qualcosa del genere ![]()
Capito.
Ma è un falso allarme.
L’elenco utenti standard è memorizzato nella cache, quindi si carica in un istante. Il problema è il tempo necessario per caricare il modello della mappa, che nel tuo caso riguarda circa 400 utenti caricati tutti insieme… quindi sì, il rendering dell’elenco utenti spreca solo lo 0,1% del tempo di elaborazione, ma il vero problema è la seconda parte. Potrebbe non esserci una soluzione rapida per questo.
Lo so in parte perché ho appena implementato questa funzionalità su un sito che non la utilizzava in precedenza. I dati della mappa si caricano così velocemente che l’elenco utenti non è mai visibile (nonostante venga caricato per primo). Il punto dolente? Solo 2 utenti hanno finora segnalato la propria posizione… la Mappa Utenti non scala bene con la sua attuale architettura.
Interessante spunto, grazie.
Al momento abbiamo solo circa il 12% dei membri della nostra comunità sulla mappa e abbiamo discusso recentemente di una campagna per coinvolgerne di più.
Ho ragione nel pensare che, man mano che la nostra comunità continua a crescere, il caricamento della mappa diventerà sempre più lento?
Indovino anche che debba prima caricare l’elenco degli utenti?
Senza sapere nulla del codice, è possibile avere la mappa da sola da qualche parte?
![]()
Come ho detto, è irrilevante. L’elenco degli utenti è in cache ed è molto breve.
Il plugin Locations utilizza un modello proprio o uno esistente del core? Mi chiedo dove sia il collo di bottiglia nella selezione di sole 400 righe di informazioni sugli utenti dal database.
Scusa per tutte le domande @merefield, sto solo cercando di capire meglio come funziona sotto il cofano ![]()
Nessun problema, Richie. Sovrascriviamo il DirectoryItemsController per recuperare più persone in una sola volta rispetto a quanto accadrebbe normalmente quando i dati sono paginati per la tabella standard. Il modello non è diverso.
Questo richiederebbe davvero una sostituzione radicale con un sistema di streaming dei dati molto più complesso, che tenga conto delle dimensioni e della posizione della finestra di visualizzazione. Immagino che sia un lavoro piuttosto consistente. Anche perché non sarà più possibile sfruttare gran parte del codice fornito da Discourse, si tratta di un caso d’uso completamente diverso. Comunque, un lavoro davvero interessante!
Il fatto che tu stia riscontrando questo ritardo ogni singola volta suggerisce che non si tratti di caching, e potrebbe essere qualcosa che potremmo risolvere senza apportare modifiche massive.
Non ho saltato o modificato un’impostazione semplice di Discourse, vero?? ![]()
No, non è un problema tuo, a meno che tu non abbia superato le capacità attuali del plugin ![]()
Quando avrò modo, darò un’occhiata a cosa servirebbe per memorizzare nella cache i risultati, così da riscontrare quel problema solo una volta per sessione. Questa è la soluzione più semplice.
La vera operazione complessa, però…
![]()
Grazie @merefield, ma per ora lasciamo perdere quella soluzione. Non ho prove in un senso o nell’altro, ma sospetto fortemente che le persone guardino la mappa solo una volta per sessione anyway ![]()
Segnalazione di un bug.
Questo bug è presente da un po’ di tempo, ma ho finalmente capito che la colpa è del plugin delle località. Quando tengo il plugin disabilitato, il mio sito web viene visualizzato correttamente nella scheda utente, ma quando lo attivo, appare due volte! Ecco uno screenshot della scheda utente che appare al passaggio del mouse:
e un altro dalla pagina del profilo completamente espansa:

Ho testato questo problema molte volte modificando le combinazioni dei valori nel profilo. L’unica volta che lo vedo apparire correttamente, ovvero il sito web viene mostrato una sola volta, è se disabilito il plugin delle località.
Grazie Kartik, sei su un aggiornamento recente?
Sì, avrei dovuto menzionarlo.
AGGIORNAMENTO: L’HTML generato per l’elemento duplicato:
<span id="ember858" class="ember-view"> <div id="ember860" class="user-location-and-website-outlet replace-location ember-view"><!----><div class="user-profile-website">
<svg class="fa d-icon d-icon-globe svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#globe"></use></svg>
<span title="http://ks.cs.uchicago.edu">ks.cs.uchicago.edu</span>
</div>
</div>
</span>
Al momento sono impegnato con lavori per i clienti, ma terrò questo a mente in vista del prossimo periodo di aggiornamento supportato (dal 1° al 5° del mese prossimo).
Interessante che uno sia stilizzato come un link cliccabile e l’altro no ![]()
Anche interessante che non stiamo riscontrando questo problema nel nostro forum.
Sembra che ci sia un altro problema @merefield
La nostra mappa degli utenti mostra attualmente 472 utenti, ma alcuni utenti hanno segnalato che il loro pin non appare sulla mappa. Tuttavia, quando visualizzi la loro scheda utente, appaiono sulla loro piccola mappa personale.
Quando eseguiamo una query sul database per gli utenti con una posizione aggiunta, otteniamo 492 risultati, quindi sembra che circa 20 non siano visibili sulla mappa.
Possiamo fare qualcosa per aiutare a risolvere questo problema?
Visualizzando la scheda utente di Chris, lui appare correttamente sulla sua mappa personale:
Mappa completa / principale, Chris manca ![]()
Qual è il valore di questa impostazione, Richie?

Per l’utente di esempio mancante, puoi inviarmi in privato il risultato di questo comando dalla console di Rails:
myuser = User.find_by(username: "===USERNAME===")
myuser.custom_fields["geo_location"]
La situazione si fa interessante ![]()
Era impostato su 500.
L’ho cambiato in 1000 e le persone scomparse sono apparse all’istante ![]()
Ti invierò in privato i risultati come richiesto ![]()
Ah, in tal caso non c’è bisogno di inviare quelle informazioni in messaggio privato. Sospetto che l’elenco delle persone con geo_locations potesse includere voci con campi vuoti (ad esempio, il campo personalizzato esiste ma l’oggetto è vuoto) e, di conseguenza, potresti aver superato il numero massimo consentito. Aumenta il numero massimo e, anche se ci sono campi vuoti, questi non escludono gli utenti validi. Certamente si potrebbe migliorare il codice in quel punto, ma non è critico.
Grazie @merefield, abbiamo notato alcuni utenti con valori come '{}', quindi immagino che in passato avessero una posizione che è stata successivamente rimossa.
Non ricordo nemmeno se questi valori vengano eliminati quando un utente viene anonimizzato: anche questo ci avrebbe fatto superare il limite magico di 500 che avevamo impostato.
Ciao ![]()