Ma perche' perdere la testa a reinventare l'acqua calda, visto che ci sono
gia' dozzine di algoritmi di ordinamento storici, testati, a complessita'
nota, e gia' implementati?

Il giorno lun 9 lug 2018 alle ore 10:21 Gollum1 <gollum1.smeag...@gmail.com>
ha scritto:

> 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.
>
>

Rispondere a