Sto scrivendo un'estensione Chrome per i segnalibri Delicious. Il mio file background.js recupera i segnalibri sul browser aperto e crea l'oggetto richiesto per jsTree per costruire un albero corretto.funzione di ordinamento jsTree incredibilmente lento
Se rendo invalido plug sorta di jsTree, i segnalibri appaiono immediatamente quando clicco il popup. Se abilito la funzione di ordinamento c'è un ritardo di ~ 2 secondi tra il clic e la visualizzazione dei dati.
ho cercato di preselezione tutti i miei dati nello script di sfondo e di passarlo al pop-up pre-ordinato, ma jsTree non onorare questo dati ordinati.
ho solo ~ 90 ~ tag e 400 segnalibri. Esiste un'opzione di configurazione che posso usare per rendere più veloce questo? Ecco come appare il mio jsTree.
$('#jstree').jstree({
'close_all': -1,
'core': {
'animation': 0
},
'json_data': {
'async': true,
'data': data
},
'progressive_render': true,
'themes': {
'theme': 'classic',
'dots': false,
'icons': true
},
'sort': function (a, b) {
return this.get_text(a) > this.get_text(b) ? 1 : -1;
},
'types': {
'valid_children': [ 'folder' ],
'types': {
'folder': {
'valid_children': [ 'file' ],
'max_depth': 1
},
}
},
'plugins': [
'json_data',
'themes',
'sort',
'types',
]
});
Solo un commento: non so il motivo per cui la vostra è lento, ma sto facendo funzionare jstree con una chiamata lato server che attraversa una directory ricorsivamente - almeno 300 file, e restituisce il codice html - e poi ho il ciclo di tutti l'html con '$ .each' e ritorna in meno di un secondo. Il mio punto è che il problema potrebbe risiedere altrove. – user1167442
Invece di aggiungere altre opzioni, prova a disattivare ogni opzione che puoi, solo per vedere se diventa più veloce ... ad es. prova a disabilitare la funzione di ordinamento, dal momento che hai pre-ordinato ... –
cosa sta facendo '' this.get_text''? forse questa è la funzione costosa? – mitchfuku