mvc3 Ajax.ActionLink并延迟显示LoadingElementId

时间:2011-07-04 05:07:38

标签: ajax asp.net-mvc asp.net-mvc-3

我有一个进度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 个答案:

答案 0 :(得分:3)

您需要自己处理。

通过指定AjaxOptions.LoadingElementId(显示它)和OnBegin(隐藏它)事件的函数,您可以处理显示/隐藏加载元素,而不是指定OnComplete。 / p>

有关AjaxOptions的详细信息,请参阅http://msdn.microsoft.com/en-us/library/dd460351.aspx

有几种方法可以创建延迟 - 请参阅How to wait 5 seconds with jQuery?

这是一个用jQuery做的例子 - delay the showing of a ajax loading gif using jQuery