mvc3 Ajax.ActionLink и задержка LoadingElementId от показа - PullRequest
2 голосов
/ 04 июля 2011

У меня есть div прогресса, абсолютные позиции которого расположены в верхней части веб-страницы.

Когда я нажимаю на Ajax.ActionLink, иногда я вижу его мерцание вверху, когда запрос / ответ очень короткий

Как добавить задержку, чтобы баннер прогресса не отображался в течение 500 мс?

спасибо

Вот рабочий код

var showProgress = false;
function AjaxBegin()
{
    showProgress = true;
    setTimeout("if (showProgress) { $('#progress').show(); }", 800);

}
function AjaxComplete()
{
    showProgress = false;
    $("#progress").hide();
}
function AjaxFailure(ajaxContext)
{
    var response = ajaxContext.responseText;
    alert("Error Code [" + ajaxContext.ErrorCode + "] " + response);
}

AjaxOptions

InsertionMode = InsertionMode.Replace;
OnFailure = "AjaxFailure";
OnBegin = "AjaxBegin";
OnComplete = "AjaxComplete";
HttpMethod = "GET";

1 Ответ

3 голосов
/ 04 июля 2011

Вам нужно будет справиться с этим самостоятельно.

Вместо указания AjaxOptions.LoadingElementId вы можете управлять отображением / скрытием загрузочного элемента, указав функции для событий OnBegin (показать его) и OnComplete (скрыть это).

См. http://msdn.microsoft.com/en-us/library/dd460351.aspx для более подробной информации о AjaxOptions.

Существует несколько способов создания задержки - см. Как ждать 5 секунд с помощью jQuery?

И вот пример, который делает это с jQuery - задерживает показ gif загрузки ajax, используя jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...