используя альтернативу updatepanel

У меня есть gridview на панели обновлений, и я отправляю сообщение через две секунды, чтобы обновить панель, как это

<script language="javascript" type="text/javascript">
        window.setInterval(function () {
   __doPostBack('<%= UpdatePanel1.ClientID %>', '');
        }, 2000);
</script>

и на стороне сервера я использовал этот код для загрузки сетки при каждой обратной передаче

if (IsPostBack)
        {
            GridView2.DataBind();
            SqlDataSource1.DataBind();
        }

Он загружает Gridview через две секунды соответственно. Но проблема в том, что он не работал при немного медленном подключении к Интернету или также не загружал веб-сервер, я только хочу спросить, есть ли альтернатива на стороне клиента или с javascript, поэтому он должен делать все на уровне клиента, а не на уровне сервера. Пожалуйста, дайте лучшее представление


person Adeel Aslam    schedule 12.01.2013    source источник


Ответы (1)


Откровенно говоря, это наихудшее использование UpdatePanel. Вы визуализируете всю страницу (за кулисами) только для того, чтобы обновлять эту панель каждые 2 секунды.

Есть несколько альтернатив:

  1. Методы страницы
  2. Конечная точка WCF с включенной поддержкой HTTP, которая обслуживает контент в ответ на запрос AJAX.
  3. Контроллер MVC, интегрированный в ваше приложение веб-форм, которое также отвечает на запросы AJAX.

Все эти подходы не потребуют отрисовки страницы, а только того контента, который вам действительно нужен. Таким образом, они сразу становятся более эффективными.

Варианты №2 и №3 потребуют небольшого ручного JavaScript для выполнения вызова AJAX. Для этого отлично подходит jQuery.

Однако вы все еще имеете дело с тем фактом, что вы должны опрашивать сервер каждые несколько секунд. Чтобы избежать этого, вы можете прочитать о длинный опрос, чтобы вместо этого получать push-уведомления.

См. Также: ASP.Net SignalR

person Tim Medora    schedule 12.01.2013
comment
Я использую формальную привязку sqldatasource с gridivew ничего больше - person Adeel Aslam; 12.01.2013
comment
Выполнение этой привязки данных каждые несколько секунд, вероятно, замедляет работу приложения. Вам нужно найти способ без больших затрат определить, что данные изменились, и только затем получить данные и отправить измененные данные клиенту. - person Tim Medora; 12.01.2013
comment
Я не понимаю, что делать на следующем шаге, пожалуйста, покажите какой-нибудь пример или код для этого - person Adeel Aslam; 12.01.2013