2009-09-23 7 views
0

Nous travaillons sur les vues de grille dans une application ASP.NET. Ici, nous voulons éviter les appels de base de données pour le jeu de données de liaison/table de données à la grille chaque fois qu'un utilisateur clique sur tri (tri des colonnes), liens de pagination ou chaque fois qu'il met à jour un enregistrement.ASP.NET - Éviter les appels de base de données pour afficher les vues de grille

Pourriez-vous s'il vous plaît me faire savoir la meilleure pratique pour le gérer?

Si ce serait formidable si vous pouviez également fournir un document de référence ou des références Web (si nécessaire). Merci beaucoup, Cordialement, Nani.

Répondre

1

Je pense que vous aurez du mal à faire cette optimisation de toute utilisation. Les fonctions de tri/mise à jour/page de GridView prennent-elles beaucoup de temps (démesurées) pour se terminer? Vous pourriez aussi avoir besoin de regarder la conception de la base de données.

2

Vous avez quelques options ici, mais elles ont toutes leurs propres pièges et sont souvent plus mauvaises que la simple frappe de la base de données. Quelques possibilités:

  • Save the DataSource dans le Cache. Voir Caching Application Data pour un bon aperçu.

  • Pour de petites quantités de données sérialisables, vous pouvez envisager de l'enregistrer dans le champ ViewState de Page. L'inconvénient de ceci est qu'il augmente la taille du code HTML que vous envoyez au client, donc vous devez équilibrer cela avec le temps que vous pourriez enregistrer en ne frappant plus la base de données. Scott Understanding ViewState de Scott Mitchell est une excellente introduction à cela.

  • Juste pour être complet bien - celui-ci est terribles: vous pouvez enregistrer le GridView « Session de DataSource s dans l'utilisateur. Cela dévore la mémoire de votre serveur Web; vous ne devriez probablement pas utiliser cette technique sauf pour le prototypage (auquel cas vous pourriez aussi bien frapper la base de données).

Enfin, vous devez absolument prendre au sérieux les conseils dans ces otheranswers.

2

Si vous voulez que vos utilisateurs disposent de capacités étendues de tri, de pagination et d'édition sans appels fréquents à la base de données, vous feriez mieux de créer un gros client Windows. Les applications Web en général sont meilleures pour les clients légers.

Vous pourrait faire tous vos tri et de montage côté client avec JavaScript, mais ce serait un incroyablement mauvaise idée. Je dirais: laissez votre serveur et votre base de données faire ce qu'ils font bien, et ne soyez pas trop soucieux de minimiser leurs rôles dans votre application.

+0

+1: oui à la centième puissance. –

+0

@Jeff: um, +1 à la centième puissance est toujours 1. :) – MusiGenesis

Questions connexes