web-dev-qa-db-fra.com

SlickGrid Vs JQGrid

J'essaie de décider entre slickgrid et jqgrid. Je pense que les deux sont riches en fonctionnalités. Jqgrid a une excellente documentation, donc il est facile à installer et à exécuter.

J'essaie de comprendre à quel point ils sont différents en termes de détails de mise en œuvre, car j'ai entendu que la grille lisse est beaucoup plus rapide. Je me demandais simplement si quelqu'un avait fait une analyse comparative/connaissait les internes de chaque grille pour fournir des entrées utiles.

Edit1: @oleg - Merci pour votre réponse. Désolé, j'avais peur de ne pas avoir fourni suffisamment de détails. Bien que je n'ai pas tous les cas d'utilisation, mais j'utiliserai à la fois les données locales lorsque les données sont petites et le défilement virtuel côté serveur, le filtrage, le tri, etc. lorsque les données sont volumineuses. Json sera la principale source de données. J'essayais d'obtenir des contributions de quelqu'un qui pourrait comprendre les internes des deux grilles. Je ne comprends pas suffisamment la mise en œuvre côté client pour en juger moi-même. Un de mes collègues a mentionné que la grille lisse pourrait être meilleure car elle a été développée avec un rendu virtuel et un support de clavier pour être avec. Ma question est ouverte, mais la mise en œuvre centrale de la grille pourrait également la rendre efficace dans les scénarios les plus complexes, c'est-à-dire les sous-grilles, les arbres, etc.

Ok, d'après l'expertise de jqgrid, comment répondriez-vous à cet extrait de Slick Grid ?

" Grille vs données La principale différence est entre SlickGrid et les autres implémentations de grille que j'ai vues, c'est qu'elles se concentrent trop sur la capacité à comprendre et à travailler avec les données (recherche, tri, analyse, chargement ajax, etc.) et pas assez pour être une meilleure "grille" (ou, dans le cas de grilles modifiables, une feuille de calcul). C'est génial si tout ce que vous voulez faire est de "rafraîchir" un TABLEAU HTML ou de gifler un frontal sur une liste simple, mais aussi inflexible pour quoi que ce soit d'autre. Les données sont compliquées. Elles ont des règles métier. Elles ont des propriétés non intrinsèques. La modification d'une propriété d'un élément peut entraîner des changements en cascade modifiant d'autres propriétés ou même d'autres éléments. Elle a des dépendances. Ce que je dis, est que le traitement des données est préférable pour le développeur à l'aide du contrôle de la grille. Essayer de tout intégrer dans l'implémentation de la grille et l'API ne fera que limiter son applicabilité et ajoutera un volume considérable. SlickGrid adopte une approche différente. accède aux données via une interface de tableau (c'est-à-dire en utilisant "d ataitem "pour accéder à un élément à une position donnée et" data.length "pour déterminer le nombre d'éléments), mais l'API est structurée de telle manière qu'il est très facile de faire réagir la grille à d'éventuelles modifications de la données sous-jacentes. "

Edit 2: Extrait de Message sur le forum Datatables : "* DataTables est essayant d'épinette un tableau HTML. Cela peut être vu, par exemple, par l'utilisation de la balise TABLE par DataTables, tandis que SlickGrid utilise des éléments DIV pour créer un affichage qui ressemble à un tableau. En tant que tel, il existe un certain nombre de techniques, comme le rendu virtuel, qui peut être utilisé avec les DIVs - mais pas avec une table . Il n'est pas possible de simplement rendre les lignes 100-110 et pas les 100 premiers dans une table, mais ce n'est pas un problème avec les DIV, donc je crains que cela ne soit pas applicable pour le moment. de DataTables, qui se concentre sur l'amélioration progressive et l'accessibilité. * "

Merci

34
StudentForever

J'ai regardé jqGrid et SlickGrid et j'ai constaté que SlickGrid est beaucoup plus élégamment écrit; moins de configuration est nécessaire pour la plupart des cas d'utilisation de SlickGrid; jqGrid, cependant, nécessite moins de configuration pour configurer les cas les plus complexes (comme le défilement virtuel);

jqGrid pourrait avoir une meilleure documentation mais la partie connexion côté serveur pour jqGrid est couverte par une offre commerciale et la documentation sur cette partie est plus difficile à obtenir que pour le côté client.

SlickGrid, d'autre part, a de bons exemples qui couvrent la plupart des cas d'utilisation et la source est pleine de commentaires et est accessible à toute personne ayant une connaissance intermédiaire de javascript et jquery.

30
Vikash Madhow

Après avoir utilisé à la fois jqGrid et slickgrid dans la production/colère, voici mes 2 cents: jqGrid était très facile à démarrer et à accrocher. Cependant, nous nous sommes vite retrouvés à nous opposer à devoir adapter ce que nous voulions à la manière de faire de jqGrids. Nous avons également trouvé les capacités d'édition difficiles à implémenter et (de mémoire - c'était il y a un an), cela vous a forcé à choisir un modèle d'édition de ligne, plutôt qu'une édition de cellule qui ne fonctionnait pas bien.

Avec une grille lisse, nous n'avons pas encore atteint une fonctionnalité qui manquait/nous ne pouvions pas facilement plug-in. La documentation était assez inexistante mais est maintenant bien meilleure ( https://github.com/mleibman/SlickGrid/wiki/_pages ) mais à ce jour, nous venons de sauter dans la source. Je dois dire que l'API est l'une des meilleures que j'ai vues, et les performances avec de gros volumes de données et des éditeurs complexes ont été excellentes (certains problèmes sur IE7 mais jamais isolés de la grille par rapport à notre framework MVC et éditeurs complexes)

Dans l'ensemble, je recommande fortement la grille lisse

27
steve

Quelle langue est la plus difficile à étudier: le chinois, le finnois ou la langue de certains petits indiens?

Les questions de comparaison sont toujours trop difficiles. Vous devez avoir des gens qui vraiment bien connaissent tous les produits que vous souhaitez comparer. De plus, vous devez définir quelle partie du produit vous prévoyez d'utiliser tout à l'heure et laquelle pourrait être importante à l'avenir. Utilisez-vous des données JSON ou XML pour l'entrée de la grille ou utilisez-vous des données JavaScript locales? Avez-vous besoin d'utiliser une grille standard ou une grille avec des sous-grilles, une arborescence ou une grille avec un regroupement?

Avant de définir plus clairement la zone d'utilisation de la grille, vous ne recevrez aucune bonne réponse. À la fin, il peut parfois être important de savoir quel savoir-faire vous avez actuellement et quelle documentation ou exemples vous pouvez facilement comprendre et utiliser vous-même. L'expérience d'autres personnes que vous pouvez utiliser pourrait être plus importante que les caractéristiques du produit. Si vous regardez le nombre de questions sur stackoverflow.com avec les balises "" jqgrid " et avec la balise " slickgrid " vous pouvez voir dans quel produit pourrait vous aider stackoverflow

18
Oleg

Je suis d'accord avec @ user175528. Nous avons également beaucoup utilisé la grille dans notre application et ses formateurs, éditeurs et validateurs intégrés sont vraiment faciles à utiliser et faciles à écrire également.

Il gère bien les grands ensembles de données (et facilite la recherche à travers eux). De plus, sa pagination et son tri sont faciles à configurer.

Au début, lorsque j'ai commencé à utiliser la grille lisse, je l'avais enveloppé dans un autre widget afin de pouvoir passer à un autre fournisseur si nécessaire, mais pour l'instant, il semble fonctionner parfaitement.

Je n'y suis pas encore parvenu, mais je vais poser de bons exemples de slickgrid sur mon blog.

2
Ro Hit