Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
У меня общий такой вопрос... Какое разумное кол-во строк для datagrid стоит возвращать клиенту? Ну и, собственно, хранить во viewstate? У меня уже на 40 записях (правда, для каждой записи порядка 15 полей dataset) ощущается замедление скорости. ViewState сжимается, но без сжатия он достаточно большой. И на это сжатие - разжатие уходит несколько секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 16:45 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhhУ меня общий такой вопрос... Какое разумное кол-во строк для datagrid стоит возвращать клиенту? Ну и, собственно, хранить во viewstate? У меня уже на 40 записях (правда, для каждой записи порядка 15 полей dataset) ощущается замедление скорости. ViewState сжимается, но без сжатия он достаточно большой. И на это сжатие - разжатие уходит несколько секунд. а чем вызвана необходимость в ViewState хранить dataset? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 16:54 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
тут дело имхо не в viewstate a в пейджинге. Используете ? Вот здесь я сделал 30 строк, причем последний столбец совместимости расчетный. Выигрыш в скорости получил после отказа от штатного пейджинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 16:57 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Тоже боролся с этой проблемой. Посколько скорость загрузки на плохих каналах очень критична - запретил ViewState вообще. Проще хранить DataTable в сессии. Тогда мы расходуем только память сервера, да и то не более 100 записей, т.к. постраничная выборка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 17:02 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
DatsТоже боролся с этой проблемой. Посколько скорость загрузки на плохих каналах очень критична - запретил ViewState вообще. Проще хранить DataTable в сессии. Тогда мы расходуем только память сервера, да и то не более 100 записей, т.к. постраничная выборка. а не проще сделать кэширование данных? с точки зрения производительности это самый оптимальный вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 17:40 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Спасибо за внимание. Ситуация такая: 2Dats: ну в общем я тоже храню теперь datatable вместо dataset, и храню на сервере. но не быстро все это получается. 2big-duke: пейджинг - использую, куда ж без него. можете подсказать, или ссылку кинуть на инфу, как обойтись без штатного пейджинга? 2Ющенко: храню viewstate, т.к. в гриде мне нужно, помимо пейджинга, редактировать, сохранять, обновлять, фильтровать... если буду знать, как это сделать без viewstate - с удовольствием сделаю. специфика такая, что у каждого пользователя свои данные. т.е. кэш будет у каждого свой. это нормально? кроме того, помимо грида, есть несколько dropdownlist, которые хранят свое состояние. и я, честно говоря, не понимаю, как хранить это без viewstate - ну, например, если пользователь выбирает фильтры, то они не должны меняться при перезагрузке странички. тоже кэш? буду очень признательно за несколько полезных ссылок - у самой ничего подходящего найти не получилось :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 18:11 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhh пейджинг - использую, куда ж без него. Профиллером проверьте сколько времени занимает выборка. Штатный пейджер с сервера забирает весь набор данных. Т.е. если в таблице 1000 строк , а у вас пейджер с шагом в 40 строк, то все равно на сервер пойдет запрос на 1000 строк. Выход - написать свой. Хорошие статьи есть здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 18:25 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
2big-duke: на самом деле, с базой работа быстро происходит. т.е. загрузить 100 строк - это все почти мгновенно. а вот работать с ними потом - уже невозможно :( в смысле, медленно. если сменить фильтр (сотрудник), чтобы загрузить другие данные (где, например, 5 строк) - это тож медленно. ну логично, так как уже ненужная таблица в prerender сначала во viewstate запихивается, а только потом запрос к базе идет. в обратную сторону, к сотруднику с большим кол-вом строк (хотя 100 строк - ну не так уж это и много, вроде?), все происходит гораздо быстрее. опять же, понятно, не нужно большую таблицу во viewstate запихивать. непонятно наверно объясняю :-\ профайлер показывает большую трату времени на compress-decompress, serialize-deserialize. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 18:51 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
А, ну и если цифрами говорить - размер странички, когда я сохраняю viewstate на ней, а не на сервере, да еще и не сжимаю его - 300-400 kb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 18:55 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
> еще и не сжимаю его - 300-400 kb жесть... а на прямую с сервером, на уровне запросом не пробывали работать? про вью стэйт забудьте, если надо что-либо сохранить в коде страницы - делайте в ручную Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 19:02 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
2Profil: ну когда она обработанная - она ж маленькая :) 1-2 kb но на обработку все это время и тратится :( я не понимаю, что значит - "делать вручную". если у меня есть список сотрудников (допустим, 30 штук), и мне нужно сохранять состояние списка - что мне нужно будет делать, при отключенном viewstate? завести какой-нить label, где хранить selectedindex в этом списке? и как с гридом-то работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 19:13 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhh 2Ющенко: храню viewstate, т.к. в гриде мне нужно, помимо пейджинга, редактировать, сохранять, обновлять, фильтровать... если буду знать, как это сделать без viewstate - с удовольствием сделаю. специфика такая, что у каждого пользователя свои данные. т.е. кэш будет у каждого свой. это нормально? кроме того, помимо грида, есть несколько dropdownlist, которые хранят свое состояние. и я, честно говоря, не понимаю, как хранить это без viewstate - ну, например, если пользователь выбирает фильтры, то они не должны меняться при перезагрузке странички. тоже кэш? буду очень признательно за несколько полезных ссылок - у самой ничего подходящего найти не получилось :( насчет кэша проехали ......( я не понял идею) впринципе big-duke прав нужно самому писать спец. элемент статьи на aspnetmania.com и тут sql.ru Только я не совсем понял зачем хранить dropdownlist, тем более если они не встроены в ваш датагрид? они и так не меняются при перезагрузке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2006, 23:12 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhh2Profil: ну когда она обработанная - она ж маленькая :) 1-2 kb но на обработку все это время и тратится :( я не понимаю, что значит - "делать вручную". если у меня есть список сотрудников (допустим, 30 штук), и мне нужно сохранять состояние списка - что мне нужно будет делать, при отключенном viewstate? завести какой-нить label, где хранить selectedindex в этом списке? и как с гридом-то работать? зы вообще для прояснения ситуации нужно чуть более подробное описание исходной задачи (ТЗ)....... а то какое-то гадание на кофейной гуще! насчет запросов Profil в каком-то смысле прав ....... может попробуйте забыть про вью стейты и увеличить частоту запросов к СУБД........ рассмотрите такой вариант...... если хороший сервер, нормальная субд, не кривые запросы и структура БД можно добиться неплохой производительности. зы если честно я изначально занимался администр-нием sql server-a а потом начал заниматься asp.net, потому стараюсь смотреть на проблему с разных сторон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2006, 23:28 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
2Ющенко: похоже, придется работать с запросами к базе - так значительно быстрее, это уже проверено. но я опять же не понимаю, как, например, реализовать редактирование, обновление и удаление без сохранения состояния? достаточно просто идеи. по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке. ------------ про саму задачку, есть список сотрудников, у которых есть различные заявки, по датам. ну и к этим заявкам можно кучу всего привязывать (например, причины вызова). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2006, 13:12 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке. пардон может за глупый вопрос вы условие не забываете в page_load ставить Код: plaintext зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False! ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное! А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 12:48 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Не редактируйте в гриде - и проблем не будет Используйте отдельную форму для редактирования. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 13:12 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
tygraНе редактируйте в гриде - и проблем не будет Используйте отдельную форму для редактирования. -- Tygra's -- нет если нужно то можно dropdownlist и в датагрид его зашить и потом работать с методом Код: plaintext вообще тут зависит от требований на форме это проще всего сделать! А в случае если например проект интернет-магазин и пользователю нужно редактировать свою корзину с товарами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 13:39 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Даже если корзину - принцип малость другой. Не нужен там весь viewstate. Да и datagrid в автоматическом режиме лучше вообще не использовать. Или ни в каком - через datareader лучше, чтобы все своими руками контролировать. Пока что полностью надеяться на контролы нельзя. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 13:55 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
tygraДаже если корзину - принцип малость другой. Не нужен там весь viewstate. Да и datagrid в автоматическом режиме лучше вообще не использовать. Или ни в каком - через datareader лучше, чтобы все своими руками контролировать. Пока что полностью надеяться на контролы нельзя. -- Tygra's -- я не про viewstate я про редактирование внутри таблицы по типу Код: plaintext 1. 2. viewstate нужно использовать когда действительно нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 14:01 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Ющенко puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке. ..skip.. А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида? Я действительно с dropdownlist всех запутала, сорри.:) Я просто читаю параллельно кучу всякой инфы, и часто сталкиваюсь с идеей, что EnabledViewstate нужно делать false, т.к. даже если мы во Viewstate сами специально ничего не запихиваем, то форма все равно сохраняет состояние. Так что спрашивая про dropdownlist я имела в виду именно это... Ющенко пардон может за глупый вопрос вы условие не забываете в page_load ставить Код: plaintext зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False! ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное! Сейчас во ViewState я храню DataTable для datagrid и DataTable для dropdownlist в datagrid. Dropdownlist на форме только Bind-ю при первой загрузке. Кстати, во viewstate я сохраняю в PreRender ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:37 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
tygraНе редактируйте в гриде - и проблем не будет Используйте отдельную форму для редактирования. -- Tygra's -- Ну, наверно в другой раз так и поступлю. Кстати, а можно ли вернуть измененное состояние заявки в главную форму из формы для редактирования без того, чтобы пользователю приходилось нажимать на кнопку "обновить"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:45 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
В общем, буду делать свой paging. А на свой вопрос - как реализовывать вручную редактирование, сохранение и удаление в гриде, если не хранить DataTable во ViewState - я так и не нашла ответа :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:50 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhh Ющенко puhh по поводу dropdownlist - я имела в виду элементы, которые, как и грид, bind-ятся при первой загрузке. ..skip.. А сами dropdownlist они на форме лежат или встроены в датагрид у вас при режиме редактирования датагрида? Я действительно с dropdownlist всех запутала, сорри.:) Я просто читаю параллельно кучу всякой инфы, и часто сталкиваюсь с идеей, что EnabledViewstate нужно делать false, т.к. даже если мы во Viewstate сами специально ничего не запихиваем, то форма все равно сохраняет состояние. Так что спрашивая про dropdownlist я имела в виду именно это... Ющенко пардон может за глупый вопрос вы условие не забываете в page_load ставить Код: plaintext зы при последующих загрузках не нужно сохранять во вьюстейт ничего если стоит условие If Me.IsPostBack = False! ззы тк при отправке клиентского запроса на сервер всегда вначале выполняется событие page_load а потом все остальное! Сейчас во ViewState я храню DataTable для datagrid и DataTable для dropdownlist в datagrid. Dropdownlist на форме только Bind-ю при первой загрузке. делается просто: читаете DataReader - м в свой dropdownlist из бд ( все это делаете это в page_load в If Me.IsPostBack = False) и никаких вьюстейтов не нужно!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 20:36 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
puhhА на свой вопрос - как реализовывать вручную редактирование, сохранение и удаление в гриде, если не хранить DataTable во ViewState - я так и не нашла ответа :( элементарно! написать функцию, которая будет заполнять датасорс вашего грида данными из БД и реализовать стандартные методы датагрида (edit,cancel,update,delete) и внутри этих методов вызывать эту функцию! читали http://aspnetmania.com/Articles/Category/2.html puhhВ общем, буду делать свой paging. пейджинг тоже сейчас пишу :) зы А чем вам стандартный не нравится? хотите расширить функциональность или опять вьюстейт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 20:52 |
|
||
|
размер viewstate и datagrid
|
|||
|---|---|---|---|
|
#18+
Ющенко зы А чем вам стандартный не нравится? хотите расширить функциональность или опять вьюстейт? стандартный пейджер при запросе тащит с сервера весь набор данных, а на клиенте его расфасовывает по страницам. На небольших наборах это не очень заметно,а вот если в наборе , например, несколько тысяч строк, то производительность существенно падает. На своем проекте после перехода на свой пейджинг я получил -80% по времени формирования страницы на 3000 строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 09:39 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33652916&tid=1392690]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 345ms |

| 0 / 0 |
