#asp.net #ajax #json #webmethod
#asp.net #ajax #json #вебметод
Вопрос:
Я работаю над ajax-webmethod (используя json) для сохранения данных в базе данных и выбора их при необходимости. Теперь всякий раз, когда я вызываю вебметод, во время обработки метода вся страница зависает, и со страницей ничего нельзя сделать.
Я хочу включить все, пока веб-метод вызывается из ajax, например, показывать загружаемое изображение до завершения веб-метода.
Мой код приведен ниже:
function getvalues(id, tab, pageNo) {
$.ajax({
type: "POST",
url: "default.aspx/LoadData",
data: "{'id':'" id "','tab':'" tab "','pageNo':'" pageNo "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if (msg.d.length > 0) {
var dvComment = document.getElementById("Comments");
dvComment.innerHTML = msg.d;
}
},
async: true,
error: function(xhr, status, error) {
// alert(xhr.statusText);
}
});
}
Итак, теперь, когда он отображает HTML в DIV, страница все время зависает.
Ответ №1:
Чтобы показать загружаемое изображение, вы можете использовать ajaxStart
метод, подобный этому:
$("#loading").ajaxStart(function(){
$(this).show();
});
Где #loading
находится:
<img id="loading" src="images/ajaxload.gif" alt="loading..." style="display:none"/>
Чтобы скрыть загружаемое изображение:
$("#loading").ajaxComplete(function(){
$(this).hide();
});
Комментарии:
1. большое вам спасибо за ваш ответ, и это решило мою проблему наполовину, но я хочу, чтобы на странице можно было щелкнуть, например, я могу прокручивать страницу во время выполнения веб-метода, или я должен иметь возможность Выбирать некоторый текст и т.д.
2. Также на моей странице есть функция таймера java script, которая будет вызываться через каждую минуту для обновления содержимого<span>, которое использует тот же json-ajax, вызывающий веб-м етод. Проблема существует, а также после того, как каждую минуту метод времени обновления вызывает страницу, которая снова зависает на какой-то мо мент. Пожалуйста, подскажите мне способ избавиться от этого уродливого поведения при выполнении веб-метода.
3. @tanweer это не уродливое поведение веб-методов. Вы должны отключить таймер после запуска ajax-запроса и повторно включить его в
success
иerror
delegates, чтобы другой запрос не запускался до завершения первого. Я думаю, что это наиболее вероятная причина, по которой ваша страница замедляется.