2011-08-09 10 views
33

Próbuję zdecydować między slickgrid i jqgrid. Myślę, że obaj są bogaci w funkcje. Jqgrid ma świetną dokumentację, dzięki czemu można go łatwo uruchomić w trybie &.SlickGrid Vs JQGrid

Próbuję zrozumieć, jak są one różne, jeśli chodzi o szczegóły dotyczące implementacji, ponieważ słyszałem, że sieć jest o wiele szybsza. Właśnie zastanawiałem się czy ktoś zrobił jakiś benchmarking/znają internals każdej siatki by dostarczyć jakiś pożyteczny wkład.

Edit1: @oleg - Dziękuję za odpowiedź. Przepraszam, bałam się, że mogłam nie podać wystarczająco dużo szczegółów. Chociaż nie mam wszystkich przypadków użycia, ale będę używał zarówno lokalnych danych, gdy dane są małe, jak i po stronie serwera wirtualnego przewijania, filtrowania, sortowania itp., Gdy dane są duże. Json będzie podstawową datasoure. Próbowałem uzyskać dane od kogoś, kto mógłby zrozumieć wewnętrzne cechy obu sieci. Nie rozumiem implementacji po stronie klienta wystarczającej do samodzielnego oceniania. Jeden z moich współpracowników wspomniał, że gładka siatka może być lepsza, ponieważ została opracowana z wirtualnym renderingiem i wsparciem dla klawiatury. Moje pytanie jest otwarte, ale podstawowa implementacja siatki może sprawić, że będzie wydajna również w bardziej złożonych scenariuszach, np. Pod-siatkach, drzewach itp., Jeśli nie ma odejścia od głównego projektu, aby poradzić sobie z którymkolwiek z nich.

Ok, na podstawie wiedzy eksperckiej jqgrid, w jaki sposób odpowiedziałbyś na ten fragment z Slick Grid?

"Siatka vs Danych Kluczowa różnica jest między SlickGrid oraz inne zastosowania siatki widziałem jest to, że za bardzo skupiają się na bycie w stanie zrozumieć i pracować z danymi (wyszukiwanie, sortowanie, analizowania, AJAX obciążenia, etc .) i niewystarczająco na bycie lepszą "siatką" (lub, w przypadku edytowalnych siatek, arkuszem kalkulacyjnym). Świetnie jest, jeśli wszystko, co chcesz zrobić, to "uformować" TABELĘ HTML lub uderzyć z przodu na prostą listę , ale zbyt mało elastyczne dla czegokolwiek innego Dane są skomplikowane, mają reguły biznesowe, mają nie-wewnętrzne właściwości, Edytowanie jednej właściwości elementu może prowadzić do kaskadowania zmian modyfikujących inne właściwości lub nawet inne elementy, ma zależności. "Mówię, że radzenie sobie z danymi najlepiej pozostawić deweloperowi za pomocą siatki l. Próba dopasowania tego do implementacji siatki, a API ograniczy jej możliwości zastosowania i doda znacznego wzrostu. SlickGrid przyjmuje inne podejście. W najprostszym scenariuszu uzyskuje dostęp do danych za pośrednictwem interfejsu tablicowego (tj. Za pomocą "dataitem", aby uzyskać pozycję na danej pozycji i "data.length" w celu określenia liczby pozycji), ale interfejs API jest skonstruowany w taki sposób bardzo łatwo jest sprawić, aby sieć zareagowała na wszelkie możliwe zmiany w danych podstawowych. "

Edit 2: Fragment z Datatables forum post:" * DataTables jest starając się wystroić się tabelę HTML. Widać to na przykład poprzez użycie tagu TABLE przez DataTables, podczas gdy SlickGrid używa elementów DIV do utworzenia wyświetlacza, który wygląda jak tabela. W związku z tym istnieje wiele technik, takich jak renderowanie wirtualne, które można stosować z DIV - - ale nie z tabelą. Nie można po prostu wyświetlać wierszy 100-110, a nie pierwszych 100 w tabeli, ale nie ma problemu z DIV, więc obawiam się, że nie ma to obecnie zastosowania. Co należałoby zrobić, to przekonwertować DataTables użyciem DIV tag znaczników, ale wtedy tracisz główny cel DataTables, który jest skupienie się na progresywne ulepszanie i dostępności. *”

Dzięki

Odpowiedz

30

Spojrzałem na jqGrid i SlickGrid i stwierdził, że SlickGrid jest o wiele bardziej elegancko pisemny; dla większości przypadków użycia SlickGrid wymagana jest mniejsza konfiguracja; jqGrid jednak potrzebuje mniej konfiguracji, aby skonfigurować bardziej złożone przypadki (takie jak wirtualne przewijanie);

jqGrid może mieć lepszą dokumentację, ale część połączenia po stronie serwera dla jqGrid jest objęta ofertą komercyjną, a dokumentacja w tej części jest trudniejsza do uzyskania niż po stronie klienta.

Z drugiej strony, SlickGrid ma kilka świetnych przykładów, które obejmują większość przypadków użycia, a źródło jest pełne komentarzy i jest dostępne dla każdego, kto ma pośrednią znajomość javascript i jquery.

+0

Zobacz Edytuj 2 w oryginalnym wpisie, aby uzyskać więcej przydatnych informacji. – StudentForever

+0

Do podstawowego użycia, jqGrid jest prostszy i ma więcej funkcji (np. Ustalanie wiersza i kolumny). Z drugiej strony, jgGrid renderuje się jako tabela, co oznacza, że ​​masz typowe problemy z wydajnością w InternetExploder (dowolnej wersji) zaczynając od 20 do 50 wierszy (w zależności od wersji IE i specyfikacji komputera). Dlatego SlickGrid jest jedyną realną opcją. Ponieważ możesz uzyskać zaawansowaną funkcjonalność jqGrid w slickgrid, dzięki dodatkowej pracy. Podsumowując: oba nie są naprawdę dobre, ale SlickGrid jest znacznie gorszy, a wszystkie inne opcje (które znam) są jeszcze gorsze. –

+0

Zobacz porównanie biblioteki arkuszy JavaScript na http://jspreadsheets.com/; Wygląda na to, że klasterize jest dobrą nową opcją, szczególnie gdy nie chcesz jQuery. Wygląda na to, że stało się realną opcją dla tego rodzaju rzeczy. –

18

Który język jest trudniejsze do nauki: chiński, fiński lub język jakiegoś małego ludu Indiana?

Pytania porównujące są zawsze zbyt trudne. Musisz mieć ludzi, którzy naprawdę dobrze zna wszystkie produkty, które chcesz porównać. Ponadto powinieneś zdefiniować, której części produktu zamierzasz używać już teraz i która może być ważna w przyszłości. Czy używasz danych JSON lub XML do wprowadzania siatki lub korzystasz z lokalnych danych JavaScript? Czy potrzebujesz standardowej siatki lub siatki z podkategoriami, treegrid lub siatką z grupowaniem?

Zanim nie zdefiniujesz obszaru użycia siatki bardziej wyraźnie, nie otrzymasz żadnej dobrej odpowiedzi. Na koniec może kiedyś okazać się nawet ważna wiedza, którą masz obecnie i jaką dokumentację lub przykłady możesz łatwo zrozumieć i wykorzystać. Doświadczenie innych osób, z których możesz skorzystać, może być ważniejsze niż cechy produktu. Jeśli spojrzeć na szereg pytań dotyczących stackoverflow.com z tagami "jqgrid" i ze znacznikiem "slickgrid" można zobaczyć w jaki produkt może pomóc stackoverflow

27

Po stosować zarówno jqGrid & slickgrid w produkcji/złości, oto moje 2 centy. jqGrid było bardzo łatwe do uruchomienia i hak w Jednak szybko okazało się siatka przeciw konieczności dopasować to, co chcieliśmy na jqGrids drodze robienia rzeczy. Znaleźliśmy również możliwości edycji trudne do zaimplementowania i (z pamięci - było to rok temu) zmusiło cię do edycji modelu wiersza, a nie do edycji komórki, która nie działała dobrze.

Przy śliskiej siatce nie mamy jeszcze funkcji, której brakowało/nie mogliśmy łatwo wtyczki. Dokumentacja była dość nieistniejąca, ale teraz jest znacznie lepsza (https://github.com/mleibman/SlickGrid/wiki/_pages), ale do tej pory właśnie skakaliśmy do źródła. Muszę powiedzieć, że api jest jednym z najlepszych, jakie widziałem, a wydajność z dużymi wolumenami danych i złożonymi edytorami była doskonała (niektóre problemy na ie7, ale nigdy nie izolowały tego do siatki w porównaniu do naszego edytora MVC &)

Podsumowując, zdecydowanie polecam gładką siatkę

2

Zgadzam się z @ user175528. Bardzo często używaliśmy siatki również w naszej aplikacji, a jej wbudowane formatery, edytory i weryfikatory są naprawdę łatwe w użyciu, a także łatwe w pisaniu niestandardowe.

Obsługuje duże zbiory danych (i sprawia, że ​​przeszukiwanie ich jest proste). Dodatkowo jest to łatwe do skonfigurowania stronicowanie i sortowanie.

Początkowo, gdy zacząłem używać slickgrid, owinąłem go w inny widżet, dzięki czemu mogłem przenieść się do innego dostawcy, jeśli zajdzie taka potrzeba, ale od tej chwili wydaje się działać bezbłędnie.

Jeszcze się do tego nie dostałem, ale zamierzam przedstawić kilka dobrych przykładów na swoim blogu.