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