Piszę rozszerzenie Chrome dla Delicious zakładek. Mój plik background.js pobiera zakładki z przeglądarki i tworzy obiekt wymagany dla jsTree do zbudowania odpowiedniego drzewa.Funkcja sortowania jsTree śmiesznie wolno
Jeśli wyłączysz wtyczkę jsTree, zakładki pojawią się natychmiast po kliknięciu wyskakującego okienka. Jeśli włączę funkcję sortowania, między dwukrotnym kliknięciem a wyświetlaniem danych występuje ~ 2 sekundowe opóźnienie.
Próbowałem sortować wszystkie moje dane w skrypcie w tle i przesyłać je do podręcznego sortowania, ale jsTree nie honoruje tych posortowanych danych.
Mam tylko ~ 90 znaczników i ~ 400 zakładek. Czy istnieje opcja konfiguracji, której mogę użyć, aby przyspieszyć działanie? Oto jak wygląda mój 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',
]
});
Tylko komentarz: Nie wiem, dlaczego twój jest powolny, ale używam jstree z wywołaniem po stronie serwera, które przemierza katalog rekurencyjnie - co najmniej 300 plików, i zwraca kod HTML - a następnie przechodzę przez wszystkie html z '$ .each' i powraca w mniej niż sekundę. Chodzi mi o to, że problem może leżeć gdzie indziej. – user1167442
Zamiast dodawać inne opcje, spróbuj wyłączyć każdą opcję, aby sprawdzić, czy robi się szybciej ... np. spróbuj wyłączyć funkcję sortowania, ponieważ masz wstępnie posortowane ... –
co robi '' this.get_text''? może to jest droga funkcja? – mitchfuku