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





UpdatePanels по-прежнему выполняет обратную передачу всей страницы, а затем просто обновляет содержимое внутри панели. Вот откуда у вас замедление.
Что касается использования AJAX для ускорения работы, вы захотите использовать прямые вызовы AJAX для запроса только тех данных, которые вам нужны. Вы можете сделать это с помощью ASP.NET AJAX.
В обработчике событий page_load зарегистрируйте свой AJAX. (VB.NET)
Ajax.Utility.RegisterTypeForAJAX(GetType(ThisPageClass))
Затем создайте функцию, которая будет доступна AJAX, например:
<Ajax.AjaxMethod()> _
Public Function GetNewRows() As String
''//do stuff
Return jsonObj
End Function
Затем на стороне клиента вы можете назвать это так:
ThisPageClass.GetNewRows(someCallbackFunction);
function someCallbackFunction(result) {
var json = ParseJSON(result.value);
for(var i=0; i<json.length; i++) {
// do whatever
}
}
Вам просто нужно заткнуть дыры!
Я обнаружил, что элемент управления Repeater не имеет DOM, который можно использовать для выполнения операций на стороне клиента, таких как добавление строк и прочего, единственный простой выход (из-за некоторых ограничений), который у меня был, заключался в использовании элемента управления GridView вместо а затем использовать его DOM, и это то, что я наконец сделал.