Il 9 luglio 2018 09:13:19 CEST, Federico Di Gregorio <f...@dndg.it> ha scritto: >On 07/08/2018 11:57 PM, Gollum1 wrote:
>> va detto che richiedere i dati ordinati al server >> sarebbe molto più veloce, per riordinare circa 1800 elementi, ci >mette >> un minuto secco. > >Non ha senso, 1800 righe in JS sono niente. Probabilmente stai >chiedendo >al browser di ridisegnare la pagina ogni volta che scambi di posto due >righe. inverto direttamente tra di loro le due righe da scambiare, a livello di DOM. immagina che il codice originale che avevo trovato, riavviava la scansione dall'inizio ad ogni inversione, mentre io inverto tra di loro quelle che vanno invertite, e poi procedo con quelle seguenti. Così facendo, ad ogni ciclo diminuisci di una riga il set di righe da controllare, perché sicuramente ho spostato in fondo la riga di valore più elevato. in pratica, se adesso ci mette un minuto, con il codice originale ce ne metteva circa dieci. >La div di blocco non serve a niente, quello che devi fare è >sganciare la tabella/le righe da riordinare dal DOM e riagganciarle >alla >fine. Questo non mi è chiaro, se le tolgo dal DOM, come posso poi invertire le righe? >> o almeno così vorrei che fosse, invece mi trovo nella situazione che >> fino al termine dell'ordinamento non appare la pagina sovrapposta di >> inibizione al sito, e naturalmente al termine viene messa e poi >> tolta... > >Certo, perché finché non ridai il controllo al browser non puoi vedere >gli effetti di modifiche al DOM. è questo è il motivo per cui non vedo neppure lo scambio tra le varie righe, ma in questo caso non è sicuramente un problema. > Puoi usare il trucco di far passare un > >tick, con una cosa del tipo: > >function wait_page() { /* codice */ } >function sort_rows() { /* codice */ } > >wait_page(); > >window.setTimeout(sort_rows, 0); > penso di aver capito concettualmente, in pratica mi dici che devo provocare un evento che obblighi la pagina ad essere ridisegnata, devo vedermi di preciso cosa fa il codice che mi hai scritto, perché nel mio caso, il lancio della wait_page è fatto all'interno della sort_table, quindi potrei fare quella istruzione all'interno della sort stessa? >Anche se è completamente off-topic, ci fai vedere l'ordinamento? Magari > >lo portiamo ad essere istantaneo... > molto volentieri, appena rimetto mano sul computer e riesco a connetterlo alla rete (sono in ferie l'estero, e il codice risiede su un mio computer remoto, sto sfruttando la connettività altrui, ma per qualche giorno sarò in altra località, e non so se troverò qualcuno che mi permette di connettermi). grazie in anticipo per il supporto. byez -- gollum1 Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli errori, maledetto correttore automatico.