Обновление GridView после вставки - PullRequest
2 голосов
/ 09 января 2012

Мы используем Visual Studio 2010 и .NET 4.0 для веб-сайта ASP.NET и MVC для общей архитектуры.

В этом вопросе есть 2 части.Ничто не говорит о том, как это сделать, но как правильно поступить в соответствии с хорошими стандартами дизайна и промышленности.

  1. Если у меня есть GridView (с поддержкой AJAX) с 1000+ записями (много данных)), и отображать 100 записей одновременно, могу ли я вернуться в базу данных для следующих 100 записей или сохранить данные в сеансе и просто заново привязать сетку, взяв новые данные из сеанса?

  2. В случае вставки у меня есть 2 варианта.Во-первых, вставьте запись в базу данных, перезагрузите сетку и повторите привязку.Во-вторых, вставьте запись в сеанс и базу данных и обновите GridView на основе данных сеанса.Мне не нужно загружать новые данные из базы данных.

Не могли бы вы указать мне правильное направление?

Ответы [ 3 ]

3 голосов
/ 09 января 2012

Забудьте 1000 записей за раз ... Если вы показываете только 100 одновременно, это все, о чем вам нужно беспокоиться.На мой взгляд, запросить базу данных.100 записей за раз не много.Не полагайтесь на сессию для такого рода вещей, примите «безликий» характер сети.

Я не думаю, что использование сессий дает вам большую выгоду.В любом случае, информация должна быть отправлена ​​в браузер пользователя.Запрос к базе данных на 100 записей, вероятно, является тривиальной операцией (с точки зрения задержки).С точки зрения разработки, дополнительная сложность введения состояния сеанса здесь не стоит.(Спросите себя, какую именно пользу дает сессия здесь?)

Это только мое мнение, другие могут отличаться.Но я не могу представить, чтобы в этом сценарии возникало слишком много проблем, запрашивающих одновременно 100 записей

1 голос
/ 09 января 2012

Вы можете хранить данные в объекте кэша на сервере, чтобы избежать необходимости каждый раз читать базу данных. http://msdn.microsoft.com/en-us/library/aa478965.aspx

1 голос
/ 09 января 2012

Прочтите эту статью из ScottGu.Страница ваших наборов записей в базе данных.В большинстве случаев это правильный подход.В статье приведены некоторые ориентиры.Если ваш сайт становится большим трафиком, хранение в сессии может быть ресурсоемким.Если бы вы перешли на веб-ферму, вы все равно могли бы в конечном итоге сохранить состояние сеанса на сервере sql.

Данные сеанса также изменчивы.Что если пользователь открывает одну и ту же страницу в 2 окнах браузера?В итоге вы наступите на пальцы каждой страницы.Что делать, если пользователь уходит со страницы, пропуская сеанс или кеш?У вас будут те же проблемы с кэшем.

Пейджинг на сервере лучше всего масштабируется.

http://www.4guysfromrolla.com/articles/031506-1.aspx#postadlink

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...