Я только начинаю отучиваться от ASP.NET UpdatePanels. Я использую jQuery и jTemplates для привязки результатов веб-сервиса к сетке, и все работает нормально.
Вот что: я пытаюсь показать Spinner GIF, пока таблица обновляется (à la UpdateProgress в ASP.NET). У меня все работает, за исключением того, что счетчик заморожен. Чтобы узнать, что происходит, я попытался вытащить счетчик из окна обновления обновлений и на странице, где я все время вижу это. Он вращается и вращается до начала обновления, и он остается замороженным до тех пор, пока обновление не будет завершено, а затем снова начнет вращаться. Не совсем то, что вы хотите от "пожалуйста, подождите", spinner!
Это в IE7 - пока еще не было возможности протестировать другие браузеры. Есть предположения? Является ли вызов ajax или привязка данных на стороне клиента столь ресурсоемкой, что браузер не может склоняться к своим анимированным GIF?
Update
Здесь код, который обновляет сетку. Не уверен, что это синхронно или асинхронно.
updateConcessions = function(e) {
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: "{'Countries':'ga'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
applyTemplate(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});
}
applyTemplate = function(msg) {
$('div#TemplateTarget').setTemplate($('div#TemplateSource').html());
$('div#TemplateTarget').processTemplate(msg);
}
Обновление 2
Я только что проверил документацию jQuery, а метод $.ajax()
по умолчанию асинхронный. Просто для ударов я добавил это
$.ajax({
async: true,
...
и это не имело никакого значения.