Argomenti saltano al post sbagliato

Se io, come un altro utente finale, ho capito bene, è la stessa cosa che sto sperimentando abbastanza spesso. Un argomento si sta ricaricando e per un breve momento, un battito di ciglia o due, il forum mostra un post più vecchio e poi salta al bordo dell’ultima visita. Mi è successo pochi istanti fa e mi aspettavo un salto, ma ha smesso di mostrare un vecchio post.

Quindi… non so programmare, ma sembra un errore strano, in stile timeout - come se tutto fosse sempre al limite e dopo un brevissimo incidente di lag Discourse cercasse di tenere il passo e mostrasse quello che c’è sullo schermo in quel momento.

O non ci sono nemmeno vicino :joy:

1 Mi Piace

Sembra molto simile a qualcosa che ha a che fare con il caricamento dello slider che interferisce con il lock on.

Quando ho abilitato la modalità “slow” posso vedere il lockon chiamato per bloccare un post sullo schermo, ma non riesco a vederlo nemmeno renderizzato, quindi il posizionamento è molto errato.

L’intera classe LockOn è un po’ un hack, in questo caso forse invece di bloccare e memorizzare nella cache una posizione facciamo qualcos’altro? Forse esiste un meccanismo per chiamare il lock on più tardi dopo che lo schermo è già popolato con argomenti renderizzati?

6 Mi Piace

Grazie mille per i chiari passaggi di riproduzione @Don :pray:

Sì, è proprio così! Ci sono due cose che accadono contemporaneamente

  1. Il servizio di caricamento dello slider deve rimuovere la classe still-loading dal body
  2. LockOn deve scorrere nel punto giusto

Entrambi erano programmati nella parte afterRender del runloop di Ember. E poiché le cose di ‘lock on’ sono tecnicamente programmate per prime, sono state eseguite per prime. E così LockOn è stato eseguito mentre tutto l’HTML del post era nel DOM, ma aveva ancora display: none. :grimacing:

Questo PR sposterà la rimozione della classe still-loading nella parte ‘render’ del runloop, il che significa che qualsiasi altra cosa che programma qualcosa in afterRender verrà eseguita una volta che tutto sarà renderizzato e visibile:

D’accordo! Non volevo toccarlo come parte di questa correzione di bug, ma penso che dovremmo puntare a rimuovere tutte quelle soluzioni di fortuna.

Leggendo i commenti nel file, sembra che sia stato originariamente introdotto (10 anni fa!) per contrastare le funzionalità di ‘ripristino dello scorrimento’ del browser. Al giorno d’oggi, usiamo history.scrollRestoration = false per disabilitare quella funzionalità del browser, quindi penso che ciò renda ridondanti molte delle vecchie soluzioni di fortuna.

Probabilmente è meglio provare questo tipo di modifica sensibile tramite un componente tema per prima cosa, e poi se tutto sembra a posto potremo unirlo al core. Immagino che la rimozione di LockOn risolverà molti altri casi limite che abbiamo con la posizione di scorrimento dei topic. Cercherò di provarlo nelle prossime settimane :technologist:

7 Mi Piace