Ce qui est mieux pour la performance viewstate ou de la session
J'ai pour stocker les données de milliers d'enregistrements dans une table de données et maintenu sur la publication. L'option qui me convient viewstate(que j'ai utilisé) ou de la session. Lorsque j'ai utilisé viewstate il sera créé champ caché pour les stocker et de ralentir le chargement de la page. Si il ya une surcharge (côté serveur consommation de la mémoire et du retard dans les réponses) dans la stocker dans la session. Merci de me suggérer la solution
Vous ne devez pas stocker des milliers d'enregistrements dans la session ou de l'affichage de l'état.
Quelles sont les meilleures pratiques alors
Récupérer uniquement les données qui est nécessaire sur la page. Si vous utilisez la table de données à lier la grille. Alors la table de données ne devrait contenir que les données nécessaires sur la page de la gridview.
Que pourrait être la réponse, mais j'ai pour afficher tous les enregistrements de la gridview et maintenir les changements dans les données et lier de nouveau à gridview
Veuillez passer par ce lien aspnet.4guysfromrolla.com/articles/031506-1.aspx
Quelles sont les meilleures pratiques alors
Récupérer uniquement les données qui est nécessaire sur la page. Si vous utilisez la table de données à lier la grille. Alors la table de données ne devrait contenir que les données nécessaires sur la page de la gridview.
Que pourrait être la réponse, mais j'ai pour afficher tous les enregistrements de la gridview et maintenir les changements dans les données et lier de nouveau à gridview
Veuillez passer par ce lien aspnet.4guysfromrolla.com/articles/031506-1.aspx
OriginalL'auteur Rajaram Shelar | 2012-11-17
Vous devez vous connecter pour publier un commentaire.
Pour de grandes quantités de données, de la Session est de manière plus efficace. Si vous pouvez détecter lorsque l'utilisateur se fait avec un bloc particulier de données, définissez la variable de Session null, afin d'aider surcharge de la mémoire. Vous ne pouvez pas faire cela, mais la Session expirera finalement et la mémoire sera récupérée ensuite. L'abaissement du délai d'expiration de Session peut aider certains, mais ne pas trop petite, vous ne voulez pas couper vos utilisateurs. Session doit être activé dans votre site Web.fichier de configuration.
Voici les principes de base pour la Session vs ViewState:
ViewState: La structure de données binaires de l'état d'affichage n'est encodé en Base64 pour être placé dans la page, ce qui signifie qu'il est 1.3333 fois (8/6), la taille de l'origine des données binaires. Ces données sont téléchargées pour chaque affichage de la page. Donc, si vous avez beaucoup de choses dans le ViewState elle a des répercussions sur la page des temps de réponse. Le codage Base64 est probablement hautement optimisé, ce qui n'est pas un gain de performance. Chaque demande de page va allouer, puis libérer, l'espace pour le ViewState, il n'est donc pas la mémoire à long terme frappé. Puisque les données sont dans la page, il n'a pas de date d'expiration.
Session: Toutes les données de la Session est conservée sur le serveur web entre le chargement de la page. Cela permet de maintenir le page petit, il n'a qu'à porter l'identifiant de Session. Sur le bas côté, la mémoire utilisée pour stocker des données dans la Session reste alloué jusqu'à ce que la Session expire. Je me suis demandé si la Session des copies des données binaires ou de garde simplement un pointeur. Comme l'encodage Base64, cela peut être très optimisé, donc si il arrive, il n'est pas un gain de performance. La Session peut expirer si l'utilisateur attend trop longtemps entre les pages vues. Si la session expire, il doit renvoyer l'utilisateur à un état connu dans la page web.
Une autre question, si vous êtes le stockage des informations dans la Session, l'id de session peut être partagé entre plusieurs onglets dans le navigateur client. Vous devez faire attention à la façon dont vous utilisez les données stockées dans la Session. Assurez-vous de tester pour permettre à vos utilisateurs de ne pas obtenir des résultats inattendus.
(Remarque: l'Utilisation de ViewState est Reposante, la Session n'est pas.)
Viewstate est plus durable, car il est maintenu par le navigateur de l'utilisateur. Donc, même si un utilisateur se trouve sur une page pendant une heure, puis clique, la page sera toujours maintenir le viewstate, alors que la Session sera probablement ont expiré. Le truc est de trouver le bon équilibre.
Oui vous avez raison, mais je veux quelque chose de différent, quelle sera la consommation de la mémoire et de temps lors du chargement de la page dans les deux cas,
J'aimerais vraiment répondre à votre question, mais il y a vraiment trop de détails nécessaires pour vous donner une réponse définitive. En gros, je dois regarder par-dessus votre ensemble de l'application, puis de le tester dans votre environnement, et de le tester à l'aide de différents navigateurs et des clients avec les différents types de connexions réseau. krshekhar vraiment valable du point ci-dessus, ne pas stocker toutes les données. Magasin assez de méta-données pour récupérer les données ou la page suivante de données, ou quoi que ce soit. Puis d'optimiser la banque de données de sorte que la requête s'exécute assez rapidement que l'utilisateur ne s'en aperçoive pas.
Merci pour toutes les réponses
OriginalL'auteur gmlobdell