ASP.NET AJAX с использованием UpdatePanels - PullRequest
2 голосов
/ 11 декабря 2010

Концептуально, мое понимание AJAX - это запросы, отправляемые на сервер асинхронно или параллельно.Когда я использую несколько UpdatePanels на странице и запускаю несколько асинхронных обратных передач (скажем, с помощью кнопки), я замечаю, что второй запрос не запускается, пока не завершится первый.

Однако, когда я использую JQueryajax и используйте PageMethods / WebMethods, мои запросы обрабатываются параллельно.

Почему существует нестабильность поведения ASP.NET AJAX?

Кроме того, когда я нажимаюкнопка UpdatePanel несколько раз, она отменяет предыдущие запросы.Я ожидал их в очереди.

любая помощь?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2010

Потому что так должно быть.

Асинхронная обратная передача UpdatePanel по-прежнему просто обратная передача. Если бы нескольким постбэкам было позволено происходить параллельно, их новые ViewStates часто были бы не синхронизированы друг с другом. Затем самая следующая обратная передача выдаст ошибку проверки ViewState и / или одна из модификаций обратной передачи в состояние страницы будет потеряна после завершения третьей обратной передачи.

С другой стороны, вызовы метода страницы и веб-службы не обременены WebForms ViewState или жизненным циклом страницы. Таким образом, столько из них может происходить параллельно, насколько позволяет ограничение одновременных запросов браузера (обычно 4-8, но только 2 в некоторых браузерах, таких как IE6).

2 голосов
/ 11 декабря 2010

Это сообщение в блоге похоже, что оно решает вашу проблему и предлагает решение.Он использует некоторый javascript для постановки в очередь нескольких запросов и отправляет их на сервер в пакете (я думаю).

...