asp.net gridview против написания innerhtml - PullRequest
0 голосов
/ 08 декабря 2008

Есть ли какие-то преимущества для производительности, если я не использую gridview в asp.net для простых таблиц, запрашивающих хранимую процедуру, а вместо этого пишу html в коде сервера сам. Я уверен, что мой код будет более кратким в выводе.

Ответы [ 4 ]

2 голосов
/ 08 декабря 2008

Я собираюсь предложить альтернативное решение. Если вам не нужны какие-либо функции GridView, почему бы не использовать ретранслятор.

Повторитель упрощает реализацию, но также позволяет вам полностью контролировать сгенерированный источник. Без вопроса преформования конкатенации строк.

Я обнаружил незначительные улучшения производительности с повторителями по сравнению с GridView.

0 голосов
/ 08 декабря 2008

Здесь существует дополнительная возможность между использованием GridView и использованием StringBuilder для генерации HTML. Я говорю об использовании класса ASP Table. Я видел впечатляющие преимущества в скорости при использовании их по сравнению со стандартным GridView, когда все, что я делаю, это выплевывает данные. В качестве дополнительного бонуса я могу добавить кнопку (или кнопку ссылки) к своему выходу и подключить ее к обработчику событий, но при этом получить функциональность GridView.

Вы бы использовали это так:

Dim tab As New Table
For Each row In DataTable.Rows
  Dim tabRow as New TableRow
  For Each col In row.Columns
    dim tabCol as New TableColumn
    tabCol .Text = row(col)
    tabRow.Controls.Add(tabCol )
  Next
  tab.Rows.Add(tabRow)
Next 
Page.Controls.Add(tab)
0 голосов
/ 08 декабря 2008

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

Проблема в том, как бы вы узнали? Система по умолчанию для конкатенации строк в .Net по своей природе очень медленная, поэтому было бы легко случайно создать что-то намного более медленное, чем стандартная сетка. Конечно, вы можете проверить это, но затраты времени на разработку могут перевесить прирост производительности сервера.

0 голосов
/ 08 декабря 2008

Нет, использование GridView не дает никаких преимуществ в производительности. В общем, GridView будет немного снижать производительность из-за того, что элементы записываются в ViewState и генерируется дополнительный HTML. Преимущества, которые вы действительно получаете от GridView, включают в себя командные события и аргументы, которые могут быть легко использованы или созданы, «мешок свойств» DataKey, который позволяет отслеживать критические поля в большом наборе результатов, а также многие другие. Я добавлю это предупреждение, что я использовал GridViews даже для очень простых результатов набора результатов и не видел каких-либо существенных проблем с производительностью.

Если вы просто делаете какой-то вывод из запроса таблицы и не беспокоитесь о слишком большом взаимодействии с данными из самих результатов, «накатывание своих» даст отличное решение.

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